GNU/Linux >> Tutoriels Linux >  >> Linux

La commande de mise en veille à l'aide de la commande d'écran ne s'affiche pas dans Ps ?

J'exécute la commande sleep dans le terminal en utilisant screen et en mode détaché.
Une fois que l'écran revient immédiatement, j'exécute ps commande pour vérifier que le sommeil est en cours d'exécution.

$ 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

Mais la commande n'a pas montré le sommeil. Qu'est-ce que je fais de mal ici ?

Réponse acceptée :

C'était également déroutant pour moi au départ. Je relis ensuite l'screen local page de manuel pour le SYNOPSIS — la page de manuel en ligne ne donne pas de synopsis) — et j'ai remarqué qu'il disait :

screen [ -options ] [ cmd [ args ] ]

… ce qui m'a amené à croire qu'il voulait voir le cmd et args comme arguments indépendants.

Puisque vous avez donné ce premier argument comme valeur entre guillemets - 'sleep 2m ‘ — il a essayé d'exécuter une commande nommée (exactement) ‘sleep 2m ', contrairement à ce que vous réellement voulait, qui était sleep avec son propre argument de 2m . L'screen la commande s'est terminée avec succès (lors de mes tests), mais pas exécuter avec succès votre commande.

Utilisez plutôt :

screen -d -m sleep 2m

Au lieu de ps , qui n'affichera que les processus associés au terminal actuel (dont l'ÉCRAN et les processus associés ne sont pas ), utilisez :

ps x

qui le montrera :

$ 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. gestionnaire d'abonnement :commande introuvable

  2. dnf :commande introuvable

  3. bc :commande introuvable

  4. id :commande introuvable

  5. w :commande introuvable

Conseils d'utilisation de l'écran

Exécutez des processus d'arrière-plan sous Linux à l'aide de la commande Screen

Utilisation de la commande Watch sous Linux

ifrename :commande introuvable

aws-shell :commande introuvable

ln :commande introuvable