Пусть пользователи создают свои собственные демоны

Как разрешить пользователям сервера создавать собственные демоны? Они должны автоматически запускаться при загрузке, иначе они будут вести себя как обычные демоны, но с более низкими привилегиями.

Я помню, что видел инструмент, который позволяет пользователю создать файл в формате, подобном crontab, с его пожеланиями. Инструмент гарантировал, что программы из файла будут работать в любое время . Но теперь просто не мог найти его имя.

nohup ./app & just does not cut, потому что он не будет автозапуском, и приложение не перезапустится автоматически. То же, что @reboot в crontab пользователя.

Дело в том, что я не хочу изобретать велосипед. Если есть что-то, что делает то, что я хочу в полном объеме, я бы использовал его. И только если ничего не будет, я вернусь к ручному подходу.

(Я использую стабилизатор Debian, поэтому, насколько я понимаю, у меня пока нет системы.)

  • Как добавить строку в файл, который имеет только права на запись в root и продолжить выполнение скрипта
  • SUDO_USER undefined в руководстве sudo - разъяснение будет прекрасным
  • установить библиотеки X11 и файлы заголовков в учетной записи пользователя centOS
  • / Библиотека: операция не разрешена при входе в систему как пользователь root
  • Как отредактировать файл как root?
  • Разрешение Samba share отказало пользователю в записи файла, но все еще показывает
  • Могу ли я сделать файл доступным только для скрипта, а не для пользователя?
  • Почему не удается найти read / run / user / 1000 / gvfs, хотя он работает от имени root?
  • 2 Solutions collect form web for “Пусть пользователи создают свои собственные демоны”

    Убедитесь, что домашние каталоги для пользователей доступны раньше (до начала cron) и сделайте запись в crontab:

     @reboot /home/username/bin/start_at_boot 

    Это стандартная функция демона cron, который должен находиться в вашей системе Debian.

    Сценарий start_at_boot script может запускать демоны пользователей напрямую или запускать инструмент, который управляет и наблюдает за демонами пользователей (конфигурация которых может находиться под контролем отдельного пользователя). Я использовал несколько пакетов для этого, например, для компилятора, который поставляется с mongrel2 . Но теперь, как правило, используют супервизор (находясь в python, это упрощает понимание и расширяется, когда возникает необходимость в этом).

    Для другого планирования (или ношения дремлющего демона в действие) пользователи могут делать обычные записи в своем собственном crontab.

    Если вы находитесь на systemd, это тривиально, потому что systemd не требует формализма fork / exec / pidfile. Вы просто создаете файл службы, и системаd заботится о запуске процесса, перезапуске аварийного экземпляра и так далее. Вы также можете легко разрешить пользователям создавать свои собственные служебные файлы (или даже запускать их не как root, а как их собственный пользователь – если это так или иначе полезно).

    В системных V-скриптах наиболее стандартным способом является их запуск в /etc/rc.local . Автоматический перезапуск обычно не работает даже для системных демонов! Однако вы могли написать оболочку оболочки, которая запускает процесс в цикле (возможно, со сном 1, чтобы избежать проблем с постоянно провальными процессами). Однако в этой системе у вас очень мало контроля над отдельными демонами.

    Вы также можете просто создать initscripts и поместить их в специальный доступный пользователю каталог в rc.d и изменить систему запуска службы.

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