Używam Ubuntu Server 16.04 i wciąż się nim zajmuję. Mam skrypt Pythona, który działa w nieskończonej pętli, wykonując zadanie związane z pobieraniem danych z zewnętrznego źródła.
To, co próbuję zrobić, to sprawić, by skrypt Pythona zaczął się po (lub podczas) rozruchu, a następnie uruchamiał w tle.
Próbowałem edytować rc.local, ale sekwencja rozruchowa po prostu się zawiesiła, ponieważ skrypt nadal działa.
Każda rada byłaby bardzo doceniana.
Odpowiedzi:
0 dla odpowiedzi № 1Jako jeden ze wspomnianych komentarzy, możesz użyć cronjobs, aby uruchomić skrypty w określonych momentach, np. Podczas uruchamiania (jak chcesz). Nie zatrzyma również wykonywania, jak wspomniałeś w rc.local
Wiersz, który należy dodać do listy chronjob to:
@reboot python /home/MyPythonScript.py
Oto kilka przydatnych samouczków, które pokazują, jak to zrobić: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/ https://help.ubuntu.com/community/CronHowto
Jeśli chcesz to zrobić przy pomocy samego Pythona, to ta poręczna biblioteka Pythona - https://pypi.python.org/pypi/python-crontab/
0 dla odpowiedzi nr 2
tmux to świetne narzędzie dla komputerów w tle. Możesz go użyć do tego:
sudo apt get install tmux
Następnie dodaj go do swojego rc.local:
/usr/bin/tmux new-session -d "python /path/to/your/script"
Po uruchomieniu możesz go użyć w następujący sposób:
tmux attach
Twoja konsola zostanie podłączona do ostatniego pulpitu działającego w tle.