Depois de usar simplesmente kill <some_pid>
em sistemas Unix por muitos anos, eu aprendi pkill
a partir de um mais jovem Linux-savvy colega de trabalho colega 1 .
Eu logo aceitou o Linux-way, pgrep
ing e pkill
ing através de muitos dias e noites, por meio de slow-downs e condições de corrida. Tudo foi muito bem.
Mas agora não vejo mais nada killall
. As instruções parecem mencionar apenas killall
, e não tenho certeza se isso é algum tipo de desenvolvimento paralelo, ou se killall
é um sucessor pkill
ou algo mais.
Parece funcionar como um alvo pkill
, mas tenho certeza de que estou perdendo alguma coisa.
Uma pessoa que conhece o Ubuntu / Debian 2 pode explicar quando (ou por que) killall
deve ser usada, especialmente se deve ser preferida pkill
(quando pkill
parece mais fácil, porque eu posso ser mais desleixado com a correspondência de nomes, pelo menos por padrão).
Ao falar sobre killall
, não estou pensando no comando que em alguns sistemas Unix (Solaris, AIX,?) Mataria todos os processos do usuário. Aqui está uma descrição dessa versão, em uma página de manual do AIX da IBM :
O comando killall cancela todos os processos que você iniciou, exceto aqueles que produzem o processo killall. Este comando fornece um meio conveniente de cancelar todos os processos criados pelo shell que você controla. Quando iniciado por um usuário root, o comando killall cancela todos os processos canceláveis, exceto os processos que o iniciaram. Se vários sinais forem especificados, apenas o último será efetivo.
1 'colega' é atualização gratuita de 'colega de trabalho', assim também pode.
2 Originalmente, eu pensei que isso era algo do Linux ou Debian, mas algumas fontes estão dizendo que o Linux killall
é derivado do Unix com sabor de BSD.
fonte
killall
sistema Solaris ligado (antigo?), Mas se comportou de maneira diferente. Isso matou tudo.killall is safer for users to blindly copy and paste
, exceto se você estiver em uma máquina em que killall realmente mate tudo. É uma pena que os dois utilitários diferentes tenham o mesmo nome.Por favor, tenha cuidado com "killall". Em alguns sistemas (esqueço quais), o killall mata todos os processos. Ele ignorará silenciosamente os argumentos e interromperá completamente o seu sistema.
fonte
kill -9 -1
pode matar seu sistema e tambémkillall -9 -1
pode. Mas não apenaskillall [program]
se você ativar / etc / bash_completion, after
killall <part_of_process_name>
e hit tab - conclui automaticamente o nome do processo na lista de processos em execuçãofonte
pkill plug<tab>
matar o plug-in flash do firefox quando sei que não tenho nada que queira usar por um tempo, mas ainda quero ativamente usá-lo. Isso é uma função do shell, não uma diferença entre killall e pgrep / pkill.Se você observar as opções nos dois programas, verá que os dois fazem a mesma coisa, mas de maneiras diferentes.
O pkill fará a correspondência em vários atributos de um processo (CMD, PID, PPID, UID ...) e enviará o sinal fornecido para cada processo que corresponder. (Para CMD, uma expressão regular é usada, para outros é uma string). O pkill não é interativo, mas é melhor para programas em lote.
O killall executará a correspondência no nome do processo (comunicação) ou usuário (usuário), não em toda a cadeia de comando. O argumento é usado como uma string simples e deve corresponder ao valor 'comm' inteiro (também existe uma opção --regexp para alterar isso). O killall possui as opções --interactive e - younger-than, que o pkill não possui.
Também existe um killall5 dos dias SysV e foi portado para outras variantes do UNIX (supostamente no pacote do Ubuntu 'sysutils'). Isso se comporta de maneira diferente à moda antiga. Isso costumava ser usado internamente nos scripts init para desligar ou mudar para o modo de usuário único.
fonte
pkill
nemkillall
deve ser usado em scripts, apenas de forma interativa e com cautela.