Linux Как запустить скрипт Python при запуске

Linux Как запустить скрипт Python при запуске

Linux Ubuntu 14.04 Есть скрипт в ~/app/serve.py

Нужно запустить его в этой папке. В оболочке я могу сделать

> cd ~/app && python serve.py

и он запускает сервер

Нужно запустить его при загрузке сервера в фоновом режиме. Попробовал добавить эту команду cd ~/app && python serve.py ~в etc/rc.local (и etc/init.d/rc.local), но она не запускается.

Что я делаю не так?

решение1

Вместо добавления cd ~/app && python serve.py/etc/rc.local попробуйте ввести весь путь. Вы ожидаете, что процесс init каким-то образом узнает, что ~ — это ваш домашний каталог, но init запускается как root. Поскольку init запускается как root, он ищет /каталог app, а не ваш домашний каталог. Избавьтесь от ~, используя путь к вашему домашнему каталогу.

Попробуйте добавить /home/whitecolor/app/serve.pyв /etc/rc.local. ( pwdчтобы найти каталог path.) Избавьтесь от символа pythonперед вашим скриптом serve.py, добавив его #!/usr/bin/pythonв начало вашего скрипта. (введите a, which pythonчтобы найти путь, если он не установлен в обычном месте)

Редактировать: Вы сказали "запустить в фоновом режиме", а я это пропустил. Чтобы запустить команду в фоновом режиме, добавьте &после команды. Итак, для фонового запуска этой команды выше: /home/whitecolor/app/serve.py & Init обычно не нуждается в символе фона, чтобы запустить задание и выполнить его в фоновом режиме.

Отличное предложение DrDR не требует такой же &обработки после команды при запуске cron, поскольку они по умолчанию запускаются в фоновом режиме.

решение2

У меня никогда не возникало необходимости попробовать это, но, судя по всему, скрипты можно запускать при запуске системы через cron, добавив строку, похожую на ту, что начинается с @reboot ниже.

#m  h  dom  mon  dow  command
1   *  *    *    *    someHourlyCommand
@reboot               python /home/<username>/app/serve.py

Обратите внимание, я немного изменил команду, чтобы исключить cd'ing в каталог. Ваша ситуация может быть иной, поэтому делайте то, что подходит именно вам.

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