есть что-то вроде демона для каждого пользователя?

Мне нужно запустить некоторые фоновые процессы, которые живут до тех пор, пока я вошел в систему с определенным пользователем.

Существует ли что-то вроде демона для каждого пользователя? Я знаю только о глобальных демонах, которые живут от запуска компьютера до выключения (или ручного запуска / убийства).

на данный момент я создал скрипт, который проверяет, существует ли этот процесс и создает процесс, если он этого не делает. Затем этот скрипт запускается с помощью команды nohup из моего .profile . Таким образом, процесс запускается при запуске и запускается только один раз (даже при rxvt и использовании нескольких rxvt терминов). Тем не менее, он никогда не убивается после того, как я вхожу в журнал (что не является катастрофой, но чище также прекратить процесс).

3 Solutions collect form web for “есть что-то вроде демона для каждого пользователя?”

systemd позволяет пользователям запускать собственные экземпляры systemd для управления частными демонами.

Если у вас уже установлен systemd, все, что вам нужно сделать, это запустить systemd --user и управлять вашими службами, запустив systemctl --user . Пользовательские службы будут искать в ~/.config/systemd/user .

По умолчанию systemd будет убивать пользовательские службы при выходе из системы (по вашему усмотрению). Это поведение может быть изменено, если вы задерживаете пользователя с помощью команды loginctl --enable-linger $USER .

Мор можно найти на странице ArchWiki .

Служба dbus предназначена для того, чтобы … что-то вроде этого, можно использовать для того, чтобы :-). Каждый пользователь dbus-деамон запускается, когда пользователь входит в рабочую среду и заканчивается при выходе пользователя из системы (см. --exit-with-session страницу dbus-launch и опции --exit-with-session ). Служба dbus может быть запущена вместе с экземпляром dbus или когда интерфейс службы называется первым через dbus. Каждый пользователь может иметь свои собственные спецификации услуг dbus, определенные в скрытом каталоге в домашнем доме пользователей или глобально в /etc См. Домашнюю страницу dbus на freedesktop для большой документации и справочной реализации.

В наши дни я использую только дистрибутивы на основе Debian. Все они имеют сценарии в /etc/X11/Xsession.d которые очень часто изменяют строку, которая в самом конце будет оцениваться как команда, запускающая выбранную среду рабочего стола. Существует один такой скрипт для dbus, который добавляет команду с dbus-оболочкой dbus-launch . Эта оболочка запускает dbus-сервер и, по крайней мере, на ванильном Debian (и я готов сказать «на всех дистрибутивах на Debian»). Для dbus-launch предоставляется опция --exit-with-session .

Вы должны иметь возможность обертывать процессы, которые вы хотите запускать, когда пользователь регистрируется в службе dbus, а IIRC dbus автоматически выполняет уход за завершением своих сервисов перед выходом.

Если вы используете BASH в качестве оболочки, вы можете попытаться выполнить некоторое обнаружение в ~ / .bash_logout и завершить работу.

То, что вы, вероятно, ищете в более долгосрочной перспективе, взаимодействует (например, через D-Bus) с чем-то вроде ConsoleKit или logd системы .

  • Может ли lightdm / gnome / compiz использовать bash вместо sh?
  • Термин gnome - это тип оболочки без входа?
  • Нужно ли для командной строки вводить запись в utmp?
  • Как войти в систему пользователя tty из ssh?
  • Как проверить новый пользовательский логин?
  • Как узнать, подлинность консоли?
  • Всплывающее окно gdm при входе в систему
  • Удалить опцию из включенного файла в PAM
  • SSH для входа в систему с помощью pam_exec.so
  • Lightdm не запускается после использования webkit greeter
  • Ошибка xsession: невозможно войти в систему после изменения переменной среды
  • openSSH login медленный для одного пользователя, но не для других
  • Interesting Posts

    Какие из следующих файлов являются истинными сиротскими (потерянными) файлами и могут быть безопасно удалены?

    Получить IP-адрес для NetBios name

    Как преобразовать скрипт оболочки bash в Markdown?

    Разделить строку имен файлов в массив

    Как написать данные отдельно во многих текстовых файлах, содержащих одни и те же поля?

    Как сделать работу Compose в приложениях GTK и Qt?

    Почему «диалог» не отображает меню (но принимает принятие) при запуске с помощью выражения подстановки команд?

    Как изменить формат даты и позицию в результатах поиска

    IPTABLES – плохой IP-адрес

    Изменение и загрузка ядра Linux на мобильном устройстве

    Перемещение списка файлов путем сопоставления их с целевым индексом

    Как пропустить печать (скажем) 2-й строки файла?

    Найти файл с расширением .csv в каталоге, соответствующем шаблону

    Как получить цвета на страницах man с w3m как PAGER?

    Как узнать устройство MTD char для чтения / записи?

    Linux и Unix - лучшая ОС в мире.