Estou executando o comando sleep no terminal usando a tela e no modo desanexado.
Quando a tela retornar imediatamente, estou executando o ps
comando para verificar se o sono está em execução.
$ screen -d -m 'sleep 2m'
[raj@localhost ~]$ ps
PID TTY TIME CMD
22795 pts/0 00:00:00 bash
22869 pts/0 00:00:00 ps
Mas o comando não mostrou dormir. O que é que estou fazendo de errado aqui?
Isso foi confuso para mim inicialmente também. Eu então reli a
screen
página de manual local para a SINOPSE - a página de manual online não fornece uma sinopse) - e notei que ela dizia:... o que me levou a acreditar que queria ver os
cmd
eargs
como argumentos independentes.Como você deu esse primeiro argumento como um valor entre aspas -- '
sleep 2m
' -- ele tentou executar um comando chamado (exatamente) 'sleep 2m
', ao contrário do que você realmente queria, que erasleep
com seu próprio argumento de2m
. Oscreen
comando saiu com sucesso (nos meus testes), mas não executou seu comando com sucesso.Use, em vez disso:
Em vez de
ps
, que mostrará apenas os processos associados ao terminal atual (dos quais a SCREEN e os processos relacionados não são ), use:que irá mostrar:
Usar seria
nohup
suficiente? Ele mostraráps
onde, como executá-lo na tela, pode tornar o processo oculto dentro do processo de tela.Um exemplo disso seria do bash ..
Se você deseja sair desta sessão de terminal, pode usar um
at
comando de trabalho.