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

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

Что я здесь делаю не так? Спасибо :)

2
задан 28 November 2016 в 13:34
1 ответ

На самом деле 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 , чтобы убедиться, что сценарий действительно запущен
0
ответ дан 3 December 2019 в 14:20

Теги

Похожие вопросы