У вас есть несколько доступных механизмов:
Два наиболее распространенных механизма:
Добавление файла определения задания upstart . Это выглядит легко, но ограничивает дистрибутивы, которые могут использовать предоставленный вами скрипт, несколькими новыми (Ubuntu, дистрибутив Google Chrome, Fedora, возможно, RHEL?).
Добавление сценария sysv-init . Сценарии инициализации сложнее написать, но они гораздо более гибки в предоставлении большего количества аргументов командной строки для использования системными администраторами. Они также поддерживаются почти везде, даже в дистрибутивах, которые переключили (некоторые или большинство) своих начальных сценариев на задания Upstart.
Я не часто это вижу, это скорее выбор системного администратора, чем выбор разработчика программного обеспечения, но вы также можете использовать системное средство Vixie cron(8)
для запуска программ при загрузке.
Вы можете добавить записи в системный crontab в /etc/cron.d/*
; Vixie cron поддерживает спецификатор @reboot
, который отлично подходит для этой задачи.
Или вы можете добавить запись в свой личный файл crontab(5)
; Опять же, @reboot
Vixie cron работает и для пользователей, но вы не можете запустить интерактивный sudo(8)
с crontab(5)
. См. Документацию NOPASSWD
в sudoers(5)
, если вы хотите использовать свой собственный crontab(5)
файл, но имейте в виду, что другие администраторы на машине могут ненавидеть эту идею.