Ve zkratce
S & a disown nezměníte PID procesu.
Pokud jej nevidíte v ps -p <YOURPID> výstup, již neběží.
Můžete překontrolovat to s dalším echo $? za ps (nebo kill ), kontroluje, zda se program ukončí s kódem ukončení odlišným od 0 (obvykle 1 ).
Porozumění vašim příkazům.
-
Pozadí :když spustíte příkaz s koncovým
&pošlete to na pozadí.
To znamená, že:- Je přítomen v seznamu úloh vašeho shellu (ve vašem příkladu je číslo
[1]a můžete jej označit jako%1; (zkuste příkazjobs). - Můžete to přenést na popředí a na pozadí pomocí
fgabg. -
Je (stále) „vlastněn“ pomocí (spojeného s nadřazeným) shellem:pokud shell obdrží
SIGHUPsignál, odešleSIGHUPsignál do procesu.$ sleep 1h & [1] 10795 $ jobs [1]+ running sleep 1h & $ ps -l -p 10795 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 10795 8380 0 80 0 - 3107 hrtime pts/57 00:00:00 sleep
- Je přítomen v seznamu úloh vašeho shellu (ve vašem příkladu je číslo
-
Odmítnout :pomocí příkazu
disownodstraníte úlohu ze seznamu úloh shellu, ale nezměníte její PID.$ disown $ jobs # <---- No jobs $ ps -l -p 10795 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 10795 8380 0 80 0 - 3107 hrtime pts/57 00:00:00Všimněte si stejného PPID (prostředí stále existuje).
Teď zabijeme skořápku.$ kill 8380 # Here we kill the shell $ ps -l -p 10795 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 10795 5339 0 80 0 - 3107 hrtime pts/57 00:00:00 sleepExistuje další
PPID,5339, to s dalším vyvolánímps,ps -p 5339, zjistíte, že jsteinitinstance:$ ps -p 5339 PID TTY TIME CMD 5339 ? 00:02:20 init
pstree :rychlejší způsob.
Můžete vidět pomocí pstree rychleji.
Před disown a zabijte bash příkazy:
$ pstree -s -p 10795
init(1)───lightdm(1199)───lightdm(5259)───bash(8380)───sleep(10795)
Za disown a zabijte bash :
$ pstree -s -p 10795
init(1)───lightdm(1199)───lightdm(5259)───init(5339)───sleep(10795)
Poznámka: samozřejmě všechny PID ve vašem případě se budou lišit...
Pokud není v ps auxf , pak to neběží. Pokud spustíte kill 29144 a dostanete "Žádný takový proces", což také znamená, že proces neběží.
Každý proces má složku v /proc souborový systém s pid . Pokud složka neexistuje, proces neběží.
Například
/proc/29144/
můžete si prohlédnout proces commandline
cat /proc/29144/cmdline
příklad výstupu:
/usr/sbin/smbd
nebo zkontrolujte stav souboru procesu
stat /proc/29144/exe
příklad výstupu:
File: /proc/29144/exe -> /usr/sbin/smbd
Size: 0 Blocks: 0 IO Block: 1024 symbolic link
Device: 3h/3d Inode: 78497 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-04-07 12:18:01.719011505 +0200
Modify: 2017-04-07 12:18:01.369010535 +0200
Change: 2017-04-07 12:18:01.369010535 +0200
Birth: -