Может эта тема уже обсуждалась, но я все обыскал и ничего не нашёл, поэтому заранее извиняюсь.
У меня такая проблема - клиент в терминале не видит своего принтера.
Принтер подключается, это видно из логов, но если я захожу Система->Администрирование->Печать то там этого принтера нет, соответственно приложения принтера тоже не видят.
Вычитал, что для того чтобы cupsd увидел принтер пользователя в рабочей среде должна присутствовать переменная CUPS_SERVER, но она почему то отсутствует если посмотреть -
set | grep CUPS_SERVER.
порывшись в скрипте nxnode нашел следующую команду в процедуре cmd_node_addprinter()
export CUPS_SERVER=$(node_cupsd_get_socket)
и я выяснил, что эта команда успешно выполняется, переменной присваивается место расположение файла cups.sock (в домашней папке пользователя), но тем не менее в окружении пользователя она не появляется. Я предположил, что переменная назначается позже запуска пользовательской рабочей среды и соответственно в нее не экспортируется.
Тогда я сделал следующее: в функции startsession() сразу после команды
[ "$EXPORT_SESSIONID" = "1" ] && export NXSESSIONID="$sess_id"
поместил такую команду:
export CUPS_SERVER=$HOME/.nx/C-${NXSESSIONID}/cups/cups.sock
и принтер стал доступен для пользователя. Но согласитесь, это как то грубовато !!! Может быть Гуру подскажут более изящное решение ? Потому, как в случае если пользователь подключается в локальной сети и не подключает свой принтер, то данная конструкция только мешается, так как он не видит принтеров установленных в системе.
принтер в nxclient назначил публичным.
сервер UBUNTU 10.04
freenx-server-0.7.4-eter23ubuntu
nx-3.4.0-eter10ubuntu
nxsadmin-0.2.1-eter5ubuntu
opennx-0.16-eter4.svn444ubuntu
пробемы с подключением принтера (принтер подключается но система его не видит)
Модераторы: dimbor, Модераторы разделов
-
- Ведущий рубрики
- Сообщения: 1570
- Статус: Подвинутый участник
Re: пробемы с подключением принтера
Не включен ли ENABLE_SLAVE_MODE?
-
- Сообщения: 20
- ОС: Ubuntu 10.04
Re: пробемы с подключением принтера
ENABLE_SLAVE_MODE по дефолту,
bash > grep -r ENABLE_SLAVE_MODE /etc/nxserver/*
/etc/nxserver/node.conf:# If ENABLE_SLAVE_MODE="1" the user will be just logged in _once_ and the
/etc/nxserver/node.conf:#ENABLE_SLAVE_MODE="1"
/etc/nxserver/node.conf.d_/01-auth.conf:# If ENABLE_SLAVE_MODE="1" the user will be just logged in _once_ and the
/etc/nxserver/node.conf.d_/01-auth.conf:#ENABLE_SLAVE_MODE="1"
/etc/nxserver/node.conf.sample:# If ENABLE_SLAVE_MODE="1" the user will be just logged in _once_ and the
/etc/nxserver/node.conf.sample:#ENABLE_SLAVE_MODE="1"
bash > grep -r ENABLE_SLAVE_MODE /etc/nxserver/*
/etc/nxserver/node.conf:# If ENABLE_SLAVE_MODE="1" the user will be just logged in _once_ and the
/etc/nxserver/node.conf:#ENABLE_SLAVE_MODE="1"
/etc/nxserver/node.conf.d_/01-auth.conf:# If ENABLE_SLAVE_MODE="1" the user will be just logged in _once_ and the
/etc/nxserver/node.conf.d_/01-auth.conf:#ENABLE_SLAVE_MODE="1"
/etc/nxserver/node.conf.sample:# If ENABLE_SLAVE_MODE="1" the user will be just logged in _once_ and the
/etc/nxserver/node.conf.sample:#ENABLE_SLAVE_MODE="1"
-
- Ведущий рубрики
- Сообщения: 1570
- Статус: Подвинутый участник
Re: пробемы с подключением принтера
Предлагается попробовать выключить его, т.к. теоретически для --addprinter конструкция после else:
должна экспортировать переменную процессу-родителю, да только вот далеко не факт, что родитель еще жив - то, что до else наводит на сомнения.
Код: Выделить всё
if [ "$CMD" = "--startsession" -o "$CMD" = "--resumesession" ]
then
export SLAVE_PID="$$"
( echo "$CMDLINE" | "$0" "$CMD"; kill "$SLAVE_PID"; ) &
NODE_SESSION="$!"
else
DELIM=""
[ -n "$NODE_SESSION" ] && DELIM="$NODE_SESSION->$CMD"
( echo "$CMDLINE" | "$0" "$CMD" "$DELIM"; ) &
fi
должна экспортировать переменную процессу-родителю, да только вот далеко не факт, что родитель еще жив - то, что до else наводит на сомнения.
Спасибо сказали:
-
- Сообщения: 20
- ОС: Ubuntu 10.04
Re: пробемы с подключением принтера
dimbor писал(а): ↑03.12.2010 20:27Предлагается попробовать выключить его, т.к. теоретически для --addprinter конструкция после else:
Код: Выделить всё
if [ "$CMD" = "--startsession" -o "$CMD" = "--resumesession" ] then export SLAVE_PID="$$" ( echo "$CMDLINE" | "$0" "$CMD"; kill "$SLAVE_PID"; ) & NODE_SESSION="$!" else DELIM="" [ -n "$NODE_SESSION" ] && DELIM="$NODE_SESSION->$CMD" ( echo "$CMDLINE" | "$0" "$CMD" "$DELIM"; ) & fi
должна экспортировать переменную процессу-родителю, да только вот далеко не факт, что родитель еще жив - то, что до else наводит на сомнения.
попробовал.... не помогло
