Eu estou familiarizado com o kill
comando, e na maioria das vezes usamos o kill -9 para matar um processo com força, existem muitos outros sinais que podem ser usados kill
. Mas gostaria de saber quais são os casos de uso pkill
e killall
, se já existe um comando kill.
Faça pkill
e killall
use o kill
comando em sua implementação? Quero dizer, eles são apenas invólucros kill
ou têm sua própria implementação?
Também gostaria de saber como o pgrep
comando obtém a identificação do processo a partir do nome do processo.
Todos esses comandos usam as mesmas chamadas de sistema subjacentes? Existe alguma diferença do ponto de vista do desempenho, qual é o mais rápido?
linux
bash
shell-script
kill
Ijaz Ahmad Khan
fonte
fonte
kill -9
por padrão? -15 (por favor, pare) e -1 (o modem desligou, por favor, LIMPEZA se fechou) são muito mais educados. Em segundo lugar. Cuidado ao usar killall em caixas não-linux. Pode se comportar de maneira diferente. (Por exemplo, no solaris, mata tudo. NÃO É FILTRADO nos nomes dos processos).Respostas:
O
kill
comando é um wrapper muito simples para akill
chamada do sistema , que conhece apenas PIDs (IDs de processo).pkill
ekillall
também são wrappers para akill
chamada do sistema (na verdade, para a biblioteca libc que chama diretamente a chamada do sistema), mas podem determinar os PIDs para você, com base em coisas como, nome do processo, proprietário do processo, ID da sessão etc.Como
pkill
ekillall
trabalho podem ser vistos usandoltrace
oustrace
sobre eles. No Linux, os dois lêem o/proc
sistema de arquivos e, para cada pid (diretório) encontrado, percorre o caminho de maneira a identificar um processo por seu nome ou outros atributos. Como isso é feito é tecnicamente falando, específico do kernel e do sistema. Em geral, eles lêem o/proc/<PID>/stat
que contém o nome do comando como o 2º campo. Parapkill -f
epgrep
examine a/cmdline
entrada para cada entrada de proc do PID.pkill
epgrep
use areadproc
chamada do sistema, enquantokillall
não. Eu não poderia dizer se há uma diferença de desempenho: você terá que avaliar isso sozinho.fonte
kill e killall são ferramentas que fornecem uma maneira de matar um processo. O primeiro pelo seu PID, o segundo pelo seu nome. pgrep (lista) e pkill (kill por padrão) são ferramentas que fornecem uma maneira de enviar mensagens para um processo por seu nome ou outros atributos, consulte: http://linux.die.net/man/1/pkill Para obter mais informações sobre sinais: http://linux.die.net/man/7/signal
fonte
killall
é usado para matar um processo pelo nome? e usa o pgrep para esse fim? ekillall
também mata todos os processos filho,? qual sinalkillall
usa por padrão?killall
você matará todos os processos que você tem o direito de matar, para que, se você for root, esteja efetivamente reinicializando o servidor.killall chromium
matará o processo de cromo,pgrep chromium
fornecerá a lista PID,pkill chromium
matará cromo. killall enviará por padrão o sinal SIGTERM (como pkill)