GNU/Linux >> Znalost Linux >  >> Linux

Příkaz spánku pomocí příkazu obrazovky se v Ps nezobrazuje?

Spouštím příkaz spánku v terminálu pomocí obrazovky a v odděleném režimu.
Jakmile se obrazovka okamžitě vrátí, spustím ps příkaz k ověření, že spánek běží.

$ 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

Ale příkaz neukázal spánek. Co tady dělám špatně?

Přijatá odpověď:

To pro mě bylo zpočátku také matoucí. Poté znovu přečtu místní screen manuálová stránka pro SYNOPSI – online manuálová stránka neposkytuje synopsi) – a všiml si, že je tam uvedeno:

screen [ -options ] [ cmd [ args ] ]

… což mě vedlo k přesvědčení, že to chce vidět cmd a args jako nezávislé argumenty.

Vzhledem k tomu, že jste uvedli první argument jako hodnotu v uvozovkách — „sleep 2m “ — pokusil se provést příkaz nazvaný (přesně) „sleep 2m ‘, na rozdíl od toho, co skutečně chtěl, což byl sleep s vlastním argumentem 2m . screen příkaz byl úspěšně ukončen (v mém testování), ale ne úspěšně provést váš příkaz.

Místo toho použijte:

screen -d -m sleep 2m

Místo ps , který zobrazí pouze procesy spojené s aktuálním terminálem (z nichž OBRAZOVKA a související procesy nejsou ), použijte:

ps x

který to ukáže:

$ 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. ifrename:příkaz nenalezen

  2. nc:příkaz nenalezen

  3. rm:příkaz nenalezen

  1. mv:příkaz nenalezen

  2. ln:příkaz nenalezen

  3. příkaz nebyl nalezen při použití sudo

  1. Náhrada příkazů pomocí „?

  2. Použití Linux Sleep Command ve skriptech Bash

  3. Subscription-manager:příkaz nenalezen