Como executar um comando na tela e desanexar?

61

Como posso obter a tela para executar um comando e, em seguida, desanexar (ou seja, automaticamente em um único script sem mais entrada além do início inicial do script)? por exemplo. Eu corro myscript.sh e ele automaticamente inicia uma sessão de tela, executa um comando e depois se desconecta.

    
por darkfeline 29.07.2012 / 04:04

4 respostas

91

Isso é fácil:

screen -d -m yourcommand
    
por 29.07.2012 / 04:20
31

Para executar um único comando na tela e desanexar, tente:

screen -dm sleep 10

Para executar vários comandos, tente:

screen -dm bash -c "sleep 10; myscript.sh"

Por favor, note que quando um programa termina, tela (por padrão) mata a janela que o continha.

Se você não quiser que sua sessão seja interrompida após a conclusão do script, adicione exec sh no final, por exemplo:

screen -dm bash -c 'sleep 5; exec sh'

Para listar todas as suas sessões, tente:

screen -list

Relacionados: Iniciar a tela Unix, executar o comando, desanexar .

    
por 29.07.2012 / 04:10
11

Inicie uma nova sessão em segundo plano com o nome 'sleppy'

screen -S sleepy -dm sleep 60

Matar sessão 'sonolenta'

screen -S sleepy -X quit
    
por 06.11.2016 / 09:03
2
screen -dmS screen_session_name bash -c 'echo "doing stuff"; exec bash'
    
por 14.03.2018 / 06:40