LINUX.ORG.RU

.xinitrc_shutdown


0

1

1) Пусть я хочу в .xinitrc запускать какие-то пользовательские демоны (работающие только под иксами, а без иксов они не нужны).

daemon -start
exec windows-manager
А куда можно прописать команды для остановки демонов при выходе из иксов?


Ответ на: комментарий от toady2

> cat /etc/X11/Xreset.d/README
# Scripts in this directory are executed as root when a user log out from
# a display manager using /etc/X11/Xreset.
# The username of the user logging out is provided in the $USER environment
# variable.

AITap ★★★★★
()

А вот так можно:

daemon -start
wm
kill -SIGTERM `cat /run/daemon.pid`
?

Это большой криминал заменить «exec wm» на просто «wm»?

toady2
() автор топика
Ответ на: комментарий от toady2

Напишите в crontab скрипт, который проверяет запущен ли X либо залогинен ли пользователь в графической оболочке и если нет, то с помощью

for daemon in {daemon1,daemon2...}
do
 kill -9 `pgrep $daemon`
done
пошлёт сигнал завершения не нужным вам более процессам, конечно это простой вариант, нужно усложнить в идеале скрипт.

kostik87 ★★★★★
()

Не хочу cron'ом.

Введу конкретику. Демон, о котором я веду речь — это изменённый dwmstatus, сделанный в виде демона. Он запускается при старте иксов и каждые 20 сек обновляет статусную строку (по сигналу SIGUSR1 он обновляет её насильно; это нужно для синхронизации уведомления по светодиоду и на статусбаре). Когда я выхожу из иксов, я хочу, чтобы dwmstatus тоже завершился.

Про Xreset я так и не понял. У меня в системе ничего похожего нет. Про *.xsessions тоже. (Ох уж этот лаконизм ЛОРовцев, иногда просто черезчур).

toady2
() автор топика
Ответ на: комментарий от toady2

Разве он не делает это самостоятельно?

if (!(dpy = XOpenDisplay(NULL))) {
fprintf(stderr, «dwmstatus: cannot open display.\n»);
return 1;
}

AITap ★★★★★
()
Ответ на: комментарий от AITap

Я как понимаю, это в процессе инициализации демона он просто открывает соединение. Иксы пока есть, соединение открыто, dpy != 0. Выключаю иксы: как теперь мой демон узнает, что иксов больше нет?

toady2
() автор топика
Ответ на: комментарий от toady2

Может быть, нужно проверять, что возвращает XSync (в функции setstatus)?

AITap ★★★★★
()

Ещё вопрос: какая разница между:

1) dwmstatus — не демон, а обычная программа, в бесконечном цикле обновляющая статусбар (с паузой в 1 минуту между итерациями). В ней установлен обработчик SIGHUP, который насильно обновляет статусбар. Я её запускаю в .xinitrc как

 dwmstatus &

2) dwmstatus — демон. При запуске демонизируется и запускает бесконечный цикл обновления статусбара. Также установлен обработчик SIGHUP. В .xinitrc так:

dwmstatus

toady2
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.