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