Tomsk Sysadmins Forum
Unix => Разное => Topic started by: Xray_Linux_Root on July 05, 2007, 10:47:05
-
Кто знает чем можно слать сообщения из скрипта на все консоли с запущенным X-сервером (оконный менеджер: KDE или Gnome)?
З.Ы. не путать с обычными IM, т.к. в данном случае именно на консоли надо отправлять сообщения. Чтобы все пользователи сидящие в иксах получали их.
-
xmessage?
-
xmessage?
А авторизация на X-сервере?
-
xmessage?
Ага, почти оно.... только косяк с кодировкой.....
У меня юзеры в транслите читают не очень... а ангийский вообще не знают.
И даже не знают что работают в Linux
Просто надо каким-то образом юзеру, который инициировал обмен почтой по протоколу UUCP сообщить, что передача/получение завершена/не завершена. А то он примется давить на ярлык разрыва dial-up соединения раньше времени, а соединение не будет рваться, т.к. в скрипте присутствует проверка файла блокировки uucp.
А если не выдать какое либо сообщение - то его действия вообще нельзя будет спрогнозировать
З.Ы. будем смотреть возможность локализации.
Ещё кто знает варианты?
-
Ага, почти оно.... только косяк с кодировкой.....
У меня юзеры в транслите читают не очень... а ангийский вообще не знают.
И даже не знают что работают в Linux
Просто надо каким-то образом юзеру, который инициировал обмен почтой по протоколу UUCP сообщить, что передача/получение завершена/не завершена. А то он примется давить на ярлык разрыва dial-up соединения раньше времени, а соединение не будет рваться, т.к. в скрипте присутствует проверка файла блокировки uucp.
А если не выдать какое либо сообщение - то его действия вообще нельзя будет спрогнозировать
З.Ы. будем смотреть возможность локализации.
Ещё кто знает варианты?
Блокировка чем определяется? Наличием файла? в стартовый скрипт иксов вписать мелкого демона (хоть шеловский скрипт), который будет проверять его наличие и при исчезновении выдавать xmessage. Текст сообщения хранить в какой-то кодировке (если она разная для разных пользователей) и перекодировать в локаль - тоже решается скриптом. Про подробности думать надо, принцип такой.
-
Блокировка чем определяется? Наличием файла? в стартовый скрипт иксов вписать мелкого демона (хоть шеловский скрипт), который будет проверять его наличие и при исчезновении выдавать xmessage. Текст сообщения хранить в какой-то кодировке (если она разная для разных пользователей) и перекодировать в локаль - тоже решается скриптом. Про подробности думать надо, принцип такой.
Стоп,стоп,стоп...
Снова я не договорил.
Сообщение должно выскакивать только в перечисленных случаях .
1. При запуске скрипта разрыва соединения, если существует файл блокировки /var/lock/uucp/LOCK..nodename.
2. При запуске скрипта установки соединения и начала передачи почты.
В обоих случаях скрипт запускает пользователь и благодаря этому кодировка для отправки сообщения используется та, что является текущей у самого пользователя.
Но пользователь вместо фразы "Тествое сообщение" видит то, что видите вы на прикреплённом изображении:
-
Стоп,стоп,стоп...
Снова я не договорил.
Сообщение должно выскакивать только в перечисленных случаях .
1. При запуске скрипта разрыва соединения, если существует файл блокировки /var/lock/uucp/LOCK..nodename.
2. При запуске скрипта установки соединения и начала передачи почты.
В обоих случаях скрипт запускает пользователь и благодаря этому кодировка для отправки сообщения используется та, что является текущей у самого пользователя.
Но пользователь вместо фразы "Тествое сообщение" видит то, что видите вы на прикреплённом изображении:
Шрифты? Я попытался провернуть такой фокус с использованием шлюза и локально запущенного X-сервера - та же самая беда. Дома подобное прокатывало, даже напоминалку жене сочинил на таком принципе.
-
Шрифты?
Ага, они самые.... в используемом по умолчанию шрифте отсутствуют необходимые глифы....
Но это на моей машине такой косяк, посмотрим чего будет на продакшен сервере.
-
Ну вот, уже лучше.
1. http://ymettier.free.fr/gmsgp/gmsgp.html (http://ymettier.free.fr/gmsgp/gmsgp.html)
gmsgp --no_vscrollbar --no_hscrollbar "Чтобы закрыть окно нажмите кнопку Okay "
2. Или так:
kdialog --sorry "Внимание, передача/получение почты не завершена."
3. Или так:
http://xdialog.dyns.net/ (http://xdialog.dyns.net/)
#!/bin/bash
DIALOG=${DIALOG=Xdialog}
$DIALOG --title " Мой первый диалог" --clear \
--yesno "Привет! Перед вами пример программы,\nиспользующей (X)dialog" 10 40
case $? in
0)
echo "Выбрано 'Да'.";;
1)
echo "Выбрано 'Нет'.";;
255)
echo "Нажата клавиша ESC.";;
esac
-
Понеслась
Мне как раз тоже понадобилось - я сделал для нашего программиста 1с системку. xmpp боты от сидящих в 1с цепляются к нашему eJabberd серваку и заходят в конфу. Он туда пишет сообщение и все боты его показывают. Так вот для сидящих на линухах я тоже искал такую пограммку, но ушел куда то не в ту степь.
Теперь, вдохновившись примерами нашел тут же kmessage (http://soliton.science.uva.nl/~wijnhout/kmessage/)
Потом еще раз переситал предыдущий пост, и решил использовать kdialog.
-
Понеслась
Ставим переход Томских предприятий на свободно-распространяемое программное обеспечение на поток!
-
На поток : )) Чтобы поставить такое на поток, хватит ли достаточно квалифицированных админов?
Проблема, углубленное:
в rdesktop на весь экран kdialog вообще не стартует, kmessage не перекрывает. Что делать?
-
Проблема, углубленное:
в rdesktop на весь экран kdialog вообще не стартует, kmessage не перекрывает. Что делать?
1. В смысле (в rdesktop на весь экран) ? VNC?
2. в rdesktop на весь экран kdialog вообще не стартует
Как происходит запуск?
Если например попробовать ручками из консоли/терминала?
-
При чем тут vnc? : )) написано же - rdesktop.
Запуск:
sleep 10 && kdialog --sorry "kukukukukuku"
После этого раскрываем окно rdesktop на весь экран, отсчитываем 20 секунд (окна ессно нет на экране), сворачиваем окно, смотрим в консоль.
Failed to open device
upd
---
Впрочем если запустить kdialog просто сразу из консоли, он пишет то же самое, но окно показывается.
А вот что особенно интересно. Как раз во время эксперимента я выдернул usb bluetooth, и kde мне написал, что я нехороший человек : )) Велезло поверх rdesktop.
Я находил как такие выползающие штуки делать (сврху например вылезает надпись, потом пропадает), но она ведь исчезнет. А нужно чтоб вылетело сообщение, вылетело в любом случае, и никуда не убралось до нажатия кнопки ок.
-
При чем тут vnc? : )) написано же - rdesktop.
Запуск:
sleep 10 && kdialog --sorry "kukukukukuku"
После этого раскрываем окно rdesktop на весь экран, отсчитываем 20 секунд (окна ессно нет на экране), сворачиваем окно, смотрим в консоль.
Failed to open device
В консоли дать команду echo $DISPLAY ?
у меня эта переменная равна :0.0
Т.е. kdialog --sorry "kukukukukuku" равно kdialog --display :0.0 --sorry "kukukukukuku" для первой консоли X-сервера.
И если мне не изменяет память rdesktop - терминал-клиент к вендовому терминал-серверу.... а на венду только широковещательные сообщения слать при помощи smbclient.
З.Ы. Интересный параметр --help-all
-
Ты плохо читаешь. И считаешь себя умнее собеседника, это плохо...
-
Есть специальная либа как раз для вашего случая, libnotify. Уже куча прог её пользуют.
В комплекте есть notify-send.
-
Благодарю.
Тем более кошерный путь - стандарт уведомлений : ))
А самое главное - перекрывает окно rdesktop'а. В общем все что мечталось.