Como posso obter a tela para executar um comando e depois desanexá-lo (ou seja, automaticamente em um único script sem mais informações além de iniciar o script inicialmente)? Por exemplo, eu executo o myscript.sh e ele inicia automaticamente uma sessão na tela, executa um comando e depois desanexa.
command-line
script
gnu-screen
darkfeline
fonte
fonte
screen yourcommand
sem a-d
e-m
e ver como isso vai primeiro.zombie
opção na tela. Coloquezombie xy
no seu~/.screenrc
. Também deve ser possível habilitá-lo para uma sessão apenas b colocandozombie xy
outro arquivo e usando-o,-c file
mas por algum motivo isso não está funcionando quando o tento. Ou apenas usesh -c 'yourcommand;while :;do sleep 9999; done'
Para executar um único comando na tela e desanexar, você pode tentar:
Para executar vários comandos, tente:
Observe que quando um programa termina, a tela (por padrão) mata a janela que o continha.
Se você não deseja que sua sessão seja interrompida após a conclusão do script, adicione
exec sh
no final, por exemplo:Para listar todas as suas sessões, tente:
Relacionado: Iniciar tela Unix, comando Executar, desanexar .
fonte
-S sessionname
:screen -dmS MyLongRunningScript bash -c "..."
.Para iniciar uma nova sessão em segundo plano com o nome 'sonolento'
Para matar a sessão 'sonolenta'
fonte
screen -S sleepy -dm "cd myfolder;sleep 60"
?fonte
aconteceu comigo quando eu pressionei o controle c (sig int) para sair do meu programa. sai de todo bash. então eu achei isso para pegar SIGINT. e impedir a saída da última festança. (precisa digitar exit para sair)
Acho útil usar o cron para executar programas nodejs na inicialização. e para executar a tela no momento da inicialização. no cron existem eventos especiais sintaxe @reboot
fonte