Sto eseguendo il comando sleep nel terminale usando lo schermo e in modalità separata.
Quando lo schermo ritorna immediatamente, sto eseguendo ps
comando per verificare che la sospensione sia in esecuzione.
$ screen -d -m 'sleep 2m'
[[email protected] ~]$ ps
PID TTY TIME CMD
22795 pts/0 00:00:00 bash
22869 pts/0 00:00:00 ps
Ma il comando non mostrava il sonno. Che cosa sto sbagliando qui?
Risposta accettata:
Questo era confuso anche per me inizialmente. Quindi rileggo la screen
locale pagina man per la SINOSSI — la pagina man online non fornisce una sinossi) — e ho notato che diceva:
screen [ -options ] [ cmd [ args ] ]
... il che mi ha portato a credere che volesse vedere il cmd
e args
come argomenti indipendenti.
Dal momento che hai fornito quel primo argomento come valore tra virgolette:"sleep 2m
' — ha tentato di eseguire un comando chiamato (esattamente) 'sleep 2m
', al contrario di ciò che realmente voluto, che era sleep
con il proprio argomento di 2m
. La screen
comando terminato con successo (nel mio test), ma non esegui correttamente il comando.
Usa, invece:
screen -d -m sleep 2m
Invece di ps
, che mostrerà solo i processi associati al terminale corrente (di cui lo SCHERMO e i relativi processi non ), usa:
ps x
che lo mostrerà:
$ ps x
PID TTY STAT TIME COMMAND
# ...
7514 pts/1 Ss 0:00 -bash
7761 ? Ss 0:00 SCREEN -d -m sleep 2m
7762 pts/2 Ss+ 0:00 sleep 2m
7880 pts/1 R+ 0:00 ps x
# ...