Мне нужно запускать скрипт в конце каждой пользовательской сессии, и это кажется лучшим способом сделать это. У меня нет опыта в создании программ для X11, так как же мне это делать?
1 ответ
Ответ будет зависеть от того, какой диспетчер отображения (если есть) используется для запуска X. Например, если запускается среда рабочего стола Gnome, то, вероятно, Gnome Display Manager запускает X. Если KDE, то KDE Display Manager, вероятно, сделал это.
После того, как я узнал, какой диспетчер отображения используется, я сверился с документацией для этого конкретного диспетчера отображения, чтобы узнать, упоминает ли он способ сделать то, что вы хотите. Если это не удастся, я продолжу в том же духе, который описан в вашей ссылке, но для этого нужно знать, какая "система запуска" используется. Например, Ubuntu и Red Hat используют Upstart; Arch Linux и Fedora используют systemd; Debian (я думаю) использует SysV init.
Между прочим, самое простое решение состоит в том, чтобы изменить вашу систему так, чтобы она загружалась в текстовом режиме, и, следовательно, чтобы пользователь привык к запуску startx для запуска X. Я не знаю, является ли это решение приемлемым, но эта практика использовалась чтобы быть довольно распространенным в середине 2000-х (последний раз, когда я запускал Linux) и ранее. Затем вы просто вызываете свой скрипт в конце ~/.xinitrc. Ну, это немного сложнее, чем это: последняя строка этого файла часто имеет форму exec gnome-session
где gnome-session
может быть любой программой. вы должны изменить exec gnome-session
на gnome-session
(другими словами, избавиться от exec
) и добавить строку, которая вызывает ваш скрипт после этого.