O comando “kill” para controle de trabalho é igual ao comando “kill” para enviar um sinal a um processo?

O comando “kill” para controle de trabalho é igual ao comando “kill” para enviar um sinal a um processo?

No Linux, você pode fazer o seguinte:

kill 1(ou kill %1)

O que significa "fechar os processos emtrabalho número 1".

E você pode fazer o seguinte:

kill 1234

O que significa “enviar o SIGTERMsinal para o processo com PID 1234”.

Esses dois killcomandos são o mesmo comando ou são dois comandos diferentes?

Responder1

Não tenho certeza se você pode fazer isso kill 1(ou melhor, você pode tentar, mas não terá permissão, a menos que seja seu root, e então você terá uma surpresa). 1aqui sempre se refere ao processo com id 1, que normalmente é init(ou alguma variante dele).

Para realmente responder à sua pergunta, se você estiver em um shell que suporta controle de tarefas, killhaverá um shell integrado, lidando com ambos os casos (gerenciando tarefas e processos). Veja por exemplokillComando de Bash.

Se você estiver em um shell que não suporta controle de trabalho (existe algum?), killserá um binário no sistema, normalmente /bin/kill; veja por exemploutil-linuxcomandokill. Mesmo em um shell com um comando integrado kill, você pode acessá-lo, por exemplo, especificando seu caminho completo. Este killcomando também pode ser acessado sem shell (para uso em outro programa).

Veja tambémA definição do POSIX dekill, que cobre ambos os casos (mas não especifica o que é implementado e onde).

informação relacionada