Информация об изменениях

Сообщение Re: Демон и контроль процессов в сессиях от 08.01.2022 10:41

Изменено 08.01.2022 10:42 m2l

Re: Демон и контроль процессов в сессиях
Здравствуйте, Hank, Вы писали:


H>Имеется некая служба (демон systemd), которая слушает сокет и принимает определенные команды по сети. Задача — в каждой терминальной сессии (как это правильно называется в Линкус, так до конца и не понял) запускать некий "агент", от имени пользователя этой сессии. Данный Агент отображает GUI и коммуницирует через IPC с демоном. Отсюда возникает несколько вопросов:


H>1. Как отслеживать logon/logoff, блокировку сессии и т.д. из демона?

H>2. Каким образом запустить процесс в нужной/указанной терминальной сессии? Допустим, нам необходимо после логона пользователя запустить из Демона в его сессии "агент".
H>По обоим вопросам перелопатил очень много ресурсов, однако, безрезультатно, хотя, есть подозрение, что вопросы простые.

Ответ на оба вопроса очень простой — универсальным образом никак.
В разных дистрибутивах разные оболочки (DE), среды их запуска и по разному оформлен вход пользователя и его сессия. Универсального способа, даже только для GUI, просто нету.
Самый простой способ сделать желаемое не делать это вообще — как подсказали выше autostart (привязанный к настройкам DE конкретных дистрибутивов). Понятно, что ваше ПО это security & etc, для которого старт агента который может обойти пользователь не то, однако штатные средства безопасности части дистрибутивов и разнообразие окружений не дадут вам запускать что-то постраннее универсальным способом.
Re: Демон и контроль процессов в сессиях
Здравствуйте, Hank, Вы писали:


H>Имеется некая служба (демон systemd), которая слушает сокет и принимает определенные команды по сети. Задача — в каждой терминальной сессии (как это правильно называется в Линкус, так до конца и не понял) запускать некий "агент", от имени пользователя этой сессии. Данный Агент отображает GUI и коммуницирует через IPC с демоном. Отсюда возникает несколько вопросов:


H>1. Как отслеживать logon/logoff, блокировку сессии и т.д. из демона?

H>2. Каким образом запустить процесс в нужной/указанной терминальной сессии? Допустим, нам необходимо после логона пользователя запустить из Демона в его сессии "агент".
H>По обоим вопросам перелопатил очень много ресурсов, однако, безрезультатно, хотя, есть подозрение, что вопросы простые.

Ответ на оба вопроса очень простой — универсальным образом никак.
В разных дистрибутивах разные оболочки (DE), среды их запуска и по разному оформлен вход пользователя и его сессия. Универсального способа, даже только для GUI, просто нету.
Самый простой способ сделать желаемое не делать это вообще — как подсказали выше autostart (привязанный к настройкам DE конкретных дистрибутивов). Понятно, что ваше ПО это security & etc, для которого старт агента который может обойти пользователь не то, однако штатные средства безопасности части дистрибутивов и разнообразие окружений не дадут вам запускать что-то постраннее универсальным способом.

PS. Насчёт DBus & logon/logoff/lock — относительно универсально, но всё же не во всех дистрибутивах, при встрече с экзотическими менеджерами сессии с DBus тоже начинаются сложности.