GNU/Linux >> Linux Esercitazione >  >> Linux

Il comando di sospensione tramite il comando dello schermo non viene visualizzato in Ps?

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

Linux
  1. gestore abbonamenti:comando non trovato

  2. dnf:comando non trovato

  3. bc:comando non trovato

  4. id:comando non trovato

  5. w:comando non trovato

Suggerimenti per l'utilizzo dello schermo

Esegui processi in background in Linux usando il comando Screen

Utilizzo del comando Watch in Linux

aws-shell:comando non trovato

ln:comando non trovato

comando non trovato quando si utilizza sudo