Processo de trabalho "Parado" ignorado ainda aparece na tabela de processos

4

Eu quero saber porque depois de rejeitar o processo parado, ele ainda está aparecendo na tabela de processos

PING www.google.com (74.125.130.106) 56(84) bytes of data.
64 bytes from 74.125.130.106: icmp_seq=1 ttl=44 time=182 ms
64 bytes from 74.125.130.106: icmp_seq=2 ttl=44 time=209 ms
64 bytes from 74.125.130.106: icmp_seq=3 ttl=44 time=213 ms
64 bytes from 74.125.130.106: icmp_seq=4 ttl=44 time=122 ms
^Z
[1]+  Stopped                 ping www.google.com
anshul@anshul-Inspiron-N5010:~/Documents/workspace/shell$ jobs -l
[1]+ 10319 Stopped                 ping www.google.com
anshul@anshul-Inspiron-N5010:~/Documents/workspace/shell$ disown
bash: warning: deleting stopped job 1 with process group 10319
anshul@anshul-Inspiron-N5010:~/Documents/workspace/shell$ ps -ef | grep 10319
anshul   10319  9717  0 23:35 pts/25   00:00:00 ping www.google.com

Por que o processo 10319 ainda está sendo exibido, ele deve ser excluído, certo?

    
por Anveshak 22.04.2015 / 20:07

1 resposta

6

Não, o processo é interrompido e não é eliminado. Então, ps ainda mostrará isso.

Se você executar ps ax , verá que o status é T . Neste estado, o processo não fará nada até receber um SIGCONT, então ele continuará a rodar (se você digitar fg no seu terminal, você verá o processo começando de novo a partir do ponto em que parou, então no seu caso o próximo icmp_seq será 5).

EDIT: Esqueci a parte disown . Desde que você deserdou o processo, ele não aparece mais em jobs . Por esse motivo, você não pode fg it. No entanto, ele ainda está presente na saída ps com o status T . Então, como você disse, ainda é possível CONTINUAR com kill -sigcont <PID> . No entanto, mesmo que você tenha enviado um SIGCONT, não será possível desimpedi-lo, o que significa que você não será capaz de fazê-lo voltar em primeiro plano do seu terminal.

    
por 22.04.2015 / 20:23