Por que não posso matar o shell usando o PID obtido da variável $$? [duplicado]

0

Depois que eu aprendi que a variável $$ contém o número do processo do shell, eu tentei matar o shell simplesmente: kill, mas isso não funcionou, eu também tentei algumas variações, mas elas também não tiveram efeito .

    
por Abdul Al Hazred 21.02.2015 / 21:27

2 respostas

2

Você pode, mas a casca tenta não morrer, a menos que esteja absolutamente certo de que é necessário.

O SIGHUP funciona (assim como o SIGKILL), e você pode tentar isso -

kill -HUP $$

(Se você preferir identificadores de sinal numérico, o HUP pode ser substituído por 1 .)

O motivo pelo qual SIGHUP funciona é que este é o sinal que seria enviado quando uma conexão de linha serial através de um modem fosse terminada - por exemplo, se a linha telefônica estivesse desligada.

    
por 21.02.2015 / 21:31
3

Verifique o manual da bash:

When bash is interactive, in the absence of any traps, it ignores SIGTERM

link

Verifique o texto da ajuda kill ( help kill em um prompt bash):

If neither SIGSPEC nor SIGNUM is present, then SIGTERM is assumed.

link

    
por 21.02.2015 / 21:42