Я написал демон на C ++, который автоматически запускается при входе в систему с использованием bash-скрипта, помещенного в /etc/profile.d/
, во время работы с разделом install
моего make-файла. Проблема в том, что когда я выхожу из системы и снова вхожу в нее, теперь запускаются два экземпляра демона.
Мне бы хотелось, чтобы кто-то первым остановился, когда я вышел из системы, а не продолжил. В любом случае, он должен работать только когда кто-то вошел в систему. Как мне убедиться, что мой демон не работает после выхода из системы?
При использовании D-шины в приложении Вы могли бы прислушаться к сигналу SessionOver на org.gnome. Интерфейс SessionManager. С C++ Qt5 выглядел бы примерно так Ваш код:
QDBusConnection dbus = QDBusConnection::sessionBus();
dbus.connect("org.gnome.SessionManager", "",
"org.gnome.SessionManager", "SessionOver",
this, SLOT(handle_sessionOver());
Ссылки:
Можно остановить демона, использующего сценарий удара, который выполняется при выходе из системы
, Добавляет следующая строка в , lightdm.conf
session-cleanup-script=<path-to-logout-bash-script>
lightdm.conf может быть найден по телефону
/etc/init/lightdm.conf
или
, Это могло бы сделать задание