Назад | Перейти на главную страницу

открыть экран в фоновом режиме и запустить процесс

Я хочу сделать следующее: после перезагрузки я хочу запустить экран, который затем должен выполнить сценарий. Поэтому я поискал 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()

А затем сделайте:

  1. chmod +x testscript.py
  2. screen -d -m /path/to/testscript.py
  3. Быстро сделай screen -x чтобы проверить, действительно ли скрипт запущен