2016-08-17 2 views
1

Я запускаю сервер Ubuntu 16.04 и все еще получаю доступ к нему. У меня есть скрипт python, который работает в бесконечном цикле, выполняя задачу, связанную с извлечением данных из внешнего источника.Автозапуск скрипта Python и запуск в фоновом режиме с помощью Ubuntu

Что я пытаюсь сделать, это запустить этот скрипт python после (или во время) загрузки, а затем запустить в фоновом режиме.

Я пробовал редактировать rc.local, но последовательность загрузки просто зависает, так как скрипт продолжает работать.

Любые советы были бы весьма полезными.

+0

Вы можете использовать cronjob https://help.ubuntu.com/community/CronHowto – Harsha

+0

, вы можете попробовать следующее: http://www.instructables.com/id/Raspberry-Pi-Launch-Python-script-on-startup/ , его RPi, но все еще linux – dhdavvie

ответ

0

Как упоминается в комментарии, вы можете использовать cronjobs для запуска скриптов в определенные моменты времени, например при запуске (как вы хотели бы сделать). Он также не остановит выполнение, как вы упомянули, с rc.local

линию, которую нужно добавить в список chronjob является -

@reboot python /home/MyPythonScript.py

Здесь есть пара полезных обучающих программ, которые показывают вам как это сделать: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/ https://help.ubuntu.com/community/CronHowto

Если вы хотели бы сделать это с самого питона есть такая удобная библиотека Python - https://pypi.python.org/pypi/python-crontab/

+0

Я открыл crontab с: sudo crontab -e, затем добавил строку: @reboot python /home/user/myscript.py. Тем не менее, он все еще не работает при перезагрузке. Есть идеи? –

+0

Сначала я проверил журналы cron, чтобы проверить, не сработала ли программа python по какой-либо причине, по умолчанию они находятся в/var/log/syslog /, чтобы просмотреть только журналы cron, используйте команду 'grep CRON/var/log/syslog' – T0m

+0

Спасибо за помощь. Мне удалось заставить его работать. Я добавил sudo к записи crontab и, похоже, работал. –

0

tmux - отличная утилита для настольных компьютеров. Вы можете использовать его для этого:

sudo apt get install tmux 

Затем добавьте его в rc.local:

/usr/bin/tmux new-session -d 'python /path/to/your/script' 

После загрузки вы можете использовать его следующим образом:

tmux attach 

И ваша консоль будет быть прикрепленным к последнему рабочему столу, работающему на фоне.

Смежные вопросы