Я хочу сделать следующее: после перезагрузки я хочу запустить экран, который затем должен выполнить сценарий. Поэтому я поискал crontab и screen и тоже нашел ответы. Однако у меня ничего не работает. Я запускаю ubuntu linux с установленным экраном, и я хочу запустить скрипт python.
Следующие работы screen -d -m
который открывает экран, но ничего не запускает. Вместо этого я хотел бы создать экран и запустить сценарий. Из того, что я нашел в сети, ответы сказали, что это достигается screen -d -m scriptname
. В моем случае имя сценария - main.py (которое я проверил на выполнение).
Тем не мение, screen -m -d /path/to/main.py
не создает экран. Это мой вывод на консоль
$ screen -d -m /opt/main.py
$ screen -x
There is no screen to be attached.
Однако это работает, но не выполняет скрипт python:
$ screen -d -m
$ screen -x
Что я здесь делаю не так? Спасибо :)
Фактически screen -d -m /path/to/executable-python-script.py
работает отлично.
Однако после завершения сценария экран автоматически закрывается. Также имейте в виду, что что-то вроде screen -d -m /usr/bin/python3 /path/to/executable-python-script.py
делает НЕ работай!
Итак, используйте, например, следующий скрипт Python testscript.py
тестировать:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import time
def main():
for i in range(10):
print("Python3 Script " + str(i))
time.sleep(5)
main()
А затем сделайте:
chmod +x testscript.py
screen -d -m /path/to/testscript.py
screen -x
чтобы проверить, действительно ли скрипт запущен