abre a tela em segundo plano e inicia um processo

3

Eu quero fazer o seguinte: Após a reinicialização, quero iniciar uma tela que, então, deve executar um script. Por isso procurei por crontab e screen e também encontrei algumas respostas. No entanto, nada funciona para mim. Eu estou executando um Ubuntu Linux com a tela instalada e eu quero executar um script python.

O seguinte funciona screen -d -m , que abre uma tela, mas não executa nada. Em vez disso, gostaria de criar uma tela e iniciar um script. Pelo que eu encontrei na net respostas disseram que isso é feito por screen -d -m scriptname . No meu caso scriptname é main.py (que verifiquei que é executável).

No entanto, screen -m -d /path/to/main.py não cria uma tela. Esta é a saída do meu console

$ screen -d -m /opt/main.py
$ screen -x
There is no screen to be attached.

No entanto, isso funciona, mas não executa o script python:

$ screen -d -m
$ screen -x

O que estou fazendo de errado aqui? Obrigado :)

    
por Tom Tom 28.11.2016 / 12:34

1 resposta

1

Na verdade, screen -d -m /path/to/executable-python-script.py funciona bem.

No entanto, depois que o script é encerrado, a tela é fechada automaticamente. Além disso, lembre-se de que algo como screen -d -m /usr/bin/python3 /path/to/executable-python-script.py NÃO funciona!

Portanto, use por exemplo o seguinte script python testscript.py para testar:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import time

def main():
    for i in range(10):
        print("Python3 Script " + str(i))
        time.sleep(5)


main()

E então faça:

  1. chmod +x testscript.py
  2. screen -d -m /path/to/testscript.py
  3. Faça um screen -x rapidamente para verificar se o script está realmente em execução
por 28.11.2016 / 14:41