Как заставить Debian запускать скрипт Python при запуске?

Как заставить Debian запускать скрипт Python при запуске?

У меня в домашней папке (pi) есть этот скрипт: server.py.

Как мне заставить Debian запускать этот скрипт при запуске, чтобы мне не приходилось входить в систему и запускать его вручную?

решение1

В то время, когда этот ответ был впервые написан, Debian (как установлено по умолчанию) использовал скрипты rc "SysV" с start-stop-daemonбинарным файлом. В файле был пример скрипта, /etc/init.d/skeletonкоторый можно было использовать в качестве основы для своего скрипта rc. После того, как у вас был свой скрипт rc и он был помечен как исполняемый, команда update-rc.dмогла использоваться для добавления его к желаемым уровням выполнения.

С течением лет все изменилось. В частности, в 2014 году изменилось две вещи:

  • Скрипт /etc/init.d/skeletonбыл заменен примером скрипта на init-d-scriptстранице руководства (5), который позднее в 2018 году сталтолькодоступна база, когда /etc/init.d/skeletonбыла полностью удалена. Содержание скелета также значительно изменилось, больше не нужно было людям писать вызовы start-stop-daemonили даже писать что-то большее, чем некоторые назначения переменных. (См.https://unix.stackexchange.com/a/480897/5132.)
  • Установленное значение по умолчанию изменилось на systemd, и вместо этого нужно было написать файлы единиц обслуживания systemd (которые не обязательно должны были быть помечены как исполняемые) и включить их с помощью systemctl enable. Однако не было примера файла единицы. (См.https://github.com/systemd/systemd/issues/10572.)

Итак, с 2018 года вам нужно написать файл единицы обслуживания systemd, который (как минимум) называет ваш скрипт (используя абсолютный путь) в настройке ExecStart. Вы можете захотеть, хотя в вопросе не указано, как именно, использовать настройку, Userчтобы скрипт запускался под эгидой вашей учетной записи пользователя, а не суперпользователя. И вымощь, опять же в зависимости от вещей, не указанных в вопросе, необходимо скоординировать относительный порядок вызова вашего скрипта и (автоматического) монтирования вашего домашнего каталога, если он смонтирован отдельно.

решение2

Вставьте su -c 'SCRIPT' USERв /etc/rc.local.

Связанный контент