MyTetra Share
Делитесь знаниями!
Как прописать команды, которые выполнятся перед стартом X-сессии
Время создания: 21.12.2021 16:15
Автор: xintrea
Текстовые метки: astra, linux, X11, сессия, старт, команды, скрипт, запуск, автозапуск, Xsession, Xstartup
Раздел: Компьютер - Linux - Дистрибутив Astra Linux
Запись: xintrea/mytetra_syncro/master/base/1640092511z5ntnny4l7/text.html на raw.github.com

Команды, запускаемые с привелегиями root


В Astra Linux имеется следующий файл:


/etc/X11/fly-dm/Xstartup


(не следует его путать с /etc/X11/fly-dm/Xsetup).


В данном файле прописываются команды, которые будут выполнены перед тем, как сессия X11 запустится для конкретного пользователя. Команды, прописанные в этом файле, выполняются под пользователем root. При этом в переменной среды USER будет прописано имя логинещегося пользователя.


Проблема файла Xstartup в том, что после него выполняются еще настройки рабочего стола, и из-за этого, например для нового пользователя, новые файлы, прописанные в скриптах первичной инициализации могут еще не существовать на момент выполнения Xstartup.



Команды, запускаемые от логинещегося пользователя


Чтобы выполнить команды после того, как создаются файлы пользователя, настраивающие рабочий стол, можно воспользоваться каталогом /etc/X11/Xsession.d. В нем можно размещать файлы с нужным Bash-кодом, желательно начиная имя файла на цифру 98, так как цифра 99 - это финишный шаг перед запуском графической сессии пользователя. Особенности скриптов, размещаемых в данном каталоге следующие:


  1. Код в этих скриптах выполняется под логинещимся пользователем. Системные настройки, для которых необходимы root-права сделать не получится.
  2. Данные скрипты - это не отдельные скрипты как таковые. Из файлов, лежащих в каталоге /etc/X11/Xsession.d как бы собирается один большой скрипт. Поэтому в них нет bang-заголовков (хотя они и не запрещены), и в них нет досрочного завершения через команду exit, так как в этом случае код, который расположен в последующих скриптах этого каталога просто не будет выполнен.


Если быть более точным, то последовательность сриптов, выполняющихся от логинещегося пользвателя, следующая:



/etc/X11/fly-dm/Xsession

-> /etc/X11/Xsession

-> /etc/X11/Xsession.d/*



Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования