O comando “kill” para o controle de trabalho é o mesmo que o comando “kill” para enviar um sinal para um processo?

0

No Linux, você pode fazer o seguinte:

kill 1 (ou kill %1 )

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

E você pode fazer o seguinte:

kill 1234

O que significa "enviar o sinal SIGTERM para o processo com PID 1234".

Estes dois comandos kill são o mesmo comando, ou são dois comandos diferentes?

    
por Steve 24.11.2017 / 17:03

1 resposta

4

Não tenho certeza se você pode fazer kill 1 (ou melhor, você pode tentar, mas você não poderá, a menos que sua raiz e, em seguida, você tenha uma surpresa). 1 aqui sempre se refere ao processo com id 1, que normalmente é init (ou alguma variante dele).

Para responder à sua pergunta, se você estiver em um shell que suporte o controle de tarefas, kill será um shell integrado, lidando com ambos os casos (gerenciando tarefas e processos). Veja, por exemplo, o comando kill do Bash .

Se você está em um shell que não suporta controle de job (existe algum?), kill será um binário no sistema, normalmente /bin/kill ; veja, por exemplo, util-linux ' kill command . Mesmo em um shell com um comando kill integrado, você pode acessar esse, por exemplo, especificando seu caminho completo. Esse comando kill também é acessível sem um shell (para uso de outro programa).

Veja também a definição POSIX de kill , que cobre os dois casos (mas não t especifique o que é implementado onde).

    
por 24.11.2017 / 17:07