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
# ...