Em resumo
Com & e disown você não altera o PID [ 1 ] do processo
Se você não vê-lo na saída ps -p <YOURPID> , não está mais em execução.
Você pode checar demais com um adicional echo $? [ 2 ] após o comando ps (ou kill ), verificando se o programa sai com um código de saída diferente de 0 (normalmente 1 ).
Entendendo seus comandos.
-
Plano de fundo : quando você iniciar o comando com o% final
&, envie-o em segundo plano.
Isso significa que:- Ele está presente na lista de trabalhos do seu shell (no seu exemplo está o número
[1]e você pode se referir a ele como%1; (tente o comandojobs). - Você pode colocá-lo em primeiro plano e em segundo plano com
fgebg. -
É (ainda) "propriedade" pelo shell (ligado ao pai): se o shell receber um sinal
SIGHUP, ele enviará um sinalSIGHUPpara o processo também .$ 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
- Ele está presente na lista de trabalhos do seu shell (no seu exemplo está o número
-
Disown : com o comando
disown, você remove o trabalho da lista de trabalhos do shell, mas não altera seu 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:00Observe o mesmo PPID (o shell ainda existe).
Agora nós matamos a casca.$ 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 sleepHá outro
PPID, o5339, que com outra invocação deps,ps -p 5339, você descobrirá como umainitinstance:$ ps -p 5339 PID TTY TIME CMD 5339 ? 00:02:20 init
pstree : uma maneira mais rápida.
Você pode ver com pstree mais rapidamente.
Antes dos comandos disown e matar o bash :
$ pstree -s -p 10795
init(1)───lightdm(1199)───lightdm(5259)───bash(8380)───sleep(10795)
Após o disown e matar o bash :
$ pstree -s -p 10795
init(1)───lightdm(1199)───lightdm(5259)───init(5339)───sleep(10795)
Nota: é claro que todos os PIDs no seu caso serão diferentes ...