Como matar um processo iniciado como daemon?

4

Eu inicio um processo usando foo & .

Produz algo como:

[1] 16915

Este é o ID do processo, eu acho. Como posso armazenar esse número em uma variável chamada MY_PROCESS_ID (por exemplo)?

Então eu posso fazer:

kill $MY_PROCESS_ID

e meu ID do processo será eliminado.

    
por Ionică Bizău 03.04.2014 / 14:50

2 respostas

4
foo &
bg_pid=$!
kill "$bg_pid"

Você também pode usar o comando kill interno do shell com (pelo menos no caso de bash ) o número do trabalho:

foo &
kill %1

Mas isso provavelmente não é mais fácil. Pode ser mais fácil interativamente. Mas com

kill %+

ou

kill %

você sempre recebe o último. Você pode até identificar o trabalho a ser morto por partes da linha de comando. Veja man bash ; procure o bloco JOB CONTROL .

    
por 03.04.2014 / 14:51
1

A variável $! é o PID se o último processo foi iniciado em segundo plano. Você faria:

foo &
my_process_id=$!

: other stuff ...

kill "$my_process_id"
    
por 03.04.2014 / 14:52