Você precisa que você passe o comando para executar dentro da sessão de tela. Você pode fazer isso passando o comando diretamente ou chamando um script que executa o comando que você deseja.
screen -S test "python3 test.py"
Se você usar esse método, observe que o comando ( python
) e o argumento transmitido a ele ( test.py
) estão dentro das marcas de fala ".." - isso pode ficar complicado se você estiver transmitindo argumentos que exigem marcas de fala formatadas especificamente, e talvez seja mais fácil usar o método abaixo.
screen -S test /home/user/test.sh
em que test.sh está em / home / user /, é executável ( chmod +x ./test.py
) e contém:
#!/bin/sh
python3 test.py
A vantagem da segunda maneira é que você pode ter quantos comandos quiser no script, eles serão executados um após o outro.
Você pode ter vários comandos executados "ao mesmo tempo" usando o plano de fundo da tarefa:
#!/bin/sh
# All 3 will run at the same time
python3 test.py &
python3 test1.py &
python3 test2.py &
Alguns truques extras e inteligentes podem ser encontrados em uma pergunta semelhante sobre SF , e uma última coisa a notar é que com TODOS estes métodos, a própria sessão de tela será fechada assim que o programa / script sair. Se você não quer fazer isso, você quer olhar para executar uma sessão bash, que chama o script e, em seguida, retorna para a sessão bash depois - como este screen -S test "someCommand; bash"
.