LINUX.ORG.RU

[Xorg] [gnome-session] Как запретить кому-то (в частности gnome-session) убивать Xorg?

 


0

2

Бывают ситуации, когда некоторые процессы ложатся (например, сделайте killall -9 dbus-daemon ), и gnome-session весело убивает искы, хотя мне это нисколько не нужно. Я могу и вручную перезапустить упавшие демоны, если это вообще мне будет нужно, а вот терять данные из запущенных приложений мне нисколько не хочется :) Пробовал добавить
Section «ServerFlags»
Option «NoTrapSignals» «true»
EndSection

Но, видимо, это не то, т.к. результат одинаковый. На данный момент не могу предоставить выхлоп Xorg'а при падении, но там чётко прослеживается, что это делает gnome-session, а сам Xorg вообще не крэшится, а именно убивается (да и видно, что сначала пропадают окна, а только потом искы убиваются).

Ещё как решение вижу запуск исков под другим юзером, проделывая это через sudo ........ в /etc/X11/xinit/xserverrc, при этом это должен быть либо скрипт, либо как-то там сделать однострочник, т.к. надо ещё мэджик куки отослать основному юзеру ( http://docs.oracle.com/cd/E19253-01/806-7612/networkapp-82688/index.html или так http://serverfault.com/questions/185574/how-to-run-gui-application-via-ssh-as... ). Но это очень костыльное решение, нельзя ли отучить Xorg слушать всякие глупые приложения или отучить gnome-session устраивать панику по любому поводу?

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

не работает. да и не должна: This disallows the use of the Ctrl+Alt+Backspace sequence. That sequence is normally used to terminate the Xorg server. When this option is enabled, that key sequence has no special meaning and is passed to clients. Default: off.

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

Если xorg-server, да и вообще любой процесс, запущен от пользователя - то он его мажет «убить», т.к. он запускается с его правами и он на него тоже имеет права, команда kill.

Если xorg-server запускается из init сценария при старте xdm/gdm/kdm и запускается соответственно от пользователя root то сторонний пользователь командой kill убить его не может. В xorg-server встроен функционал ctrl+alt+backspace для подачи xorg-server`у сигнала перезапуска.

Опция dontzap разрешает или запрещает выполнять перезапуск сервера.

Я понял что вам нужно это.

В случае же запуска xorg-server`а от пользователя ни что не сможет ему запретить подать сигнал завершения процесса xorg-server`у.

Так что запускайте xorg-server через init сценарий от root.

Если конечно вы не сидите под root`ом постоянно.

kostik87 ★★★★★
()

А оно не по зависимостям отваливается?

r2d2
()
Ответ на: комментарий от kostik87

Указанная Вами опция позволяет только включить/отключить сочетание клавиш, а не игнорирования сигнала SIGTERM. мало того, пора бы знать, что Xorg, даже когда запускается через gdm и работает от рута. позволяет себя убить пользователю X-сессии. я точно не знаю, что с чем это связанно, но это так.

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

и ещё: Xorg вообще ВСЕГДА запускается из-под рута, т.к. ему нужен доступ к аппаратному обеспечению (за исключением случаев Xdummy, Xvfb, или если доступ к /dev/fb0 разрешен конкретному юзеру и иксы настроены работать через фреймбуфер)

vendor501
() автор топика

Эм. Xorg убивается когда заканчивается сессия пользователя, т.е. при смерти xinit'а. В твоём случае это делается со смертью gnome-session. Предлагаю сделать обёртку над сессией или запускать иксы до неё и указывать DISPLAY.

/etc/X11/xinit/xserverrc

Тебя интересует не инит сервера, а инит клиентской сессии (xinitrc). Потому, что сервер работает именно так, как задумано: умирает со своим клиентом.

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

Предлагаю сделать обёртку над сессией или запускать иксы до неё и указывать DISPLAY.

К примеру, когда я настраивал dwm, у меня был скрипт, бесконечно запускающий его. Можно точно так же запускать гномосессию. Единственная проблема в том, что процессы, запущенные гномосессией, получат сигнал о том, что надо убиться при её смерти. Но я не знаю, куда тут ещё вставить nohup.

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

И напоследок. Гномосессия является башескриптом. Можно её скопировать, добавив любой функционал, в том числе и неумирание.

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

Хм. Видимо, в моей криокамере течь либо я имел в виду чуть другой файл (хотя *DM запускают именно гномосессию, которая запускает весь гном...)

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

vendor501> и ещё: Xorg вообще ВСЕГДА запускается из-под рута

Забавно. А как же заявления разработчиков о том, что он теперь без прав рута работает?

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

vendor501> т.к. ему нужен доступ к аппаратному обеспечению

Вообще говоря, рут для этого не обязателен. В качестве примера могу привести драйвер DRM. Как-то раз мне приходилсь менять права доступа к устройству, чтобы заработало 3D. Но сейчас этот недочёт не проявляется.

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

DMR и DRI не рекомендую :) Xorg можно скомпилить с харденед тулчайном, а вот давать доступ всем кому не лень к модулю ведра (кривому да проприетарному) - это оооочень не безопасно.

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