screen -d -m time python3 myscript.py
runs python3 myscript.py
dentro de uma sessão de tela e, em seguida, sai. Se você não vir essa sessão de tela mais tarde, é porque o script já saiu.
Parece que você esperava que myscript.py
fosse executado por mais tempo. Algo deve ter dado errado. Redirecione a saída (especialmente erros) para um arquivo para ver o que está acontecendo. Ou mantenha a sessão rodando outro programa.
screen -d -m time sh -c 'python3 myscript.py; echo $?; sleep 999999999'
Se o script não funciona quando você o executa diretamente da tela, mas funciona se você executá-lo a partir de um shell interativo, é muito provável que isso indique duas coisas:
-
myscript.py
depende de alguma configuração, provavelmente uma variável de ambiente. Não é auto-suficiente. - Você está definindo essa configuração no lugar errado. Você provavelmente está configurando uma variável de ambiente em
.bashrc
, que é somente lida por shells interativos. Definir variáveis de ambiente em.profile
; esse arquivo é lido quando você efetua login.