De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Jorge Kinoshita
Data de Publicação: 08 de Setembro de 1998
Em muitas situações quero matar um ou mais processos que correspondam a um certo programa. Por exemplo: é comum apos editar um arquivo para o latex querer visualiza-lo atraves do xdvi. Neste caso é necessario matar o xdvi anterior. Se a atividade de matar um processo for automatizada (sem precisar de conjugar ps|grep e kill atraves de comandos interativos) entao ela pode estar inserida em outros scripts (por exemplo: aplica o latex sobre o arquivo, mata o xdvi antigo e roda novamente o xdvi).
O seguinte script estah em Perl:
===========================================================
#!/usr/bin/perl
#--------------------------------------------------
# script para matar um processo pelo seu nome.
# colaboracao: Jorge Kinoshita.
# uso: mata <nome_do_programa>.
# exemplo:
# mata xdvi
# dah um kill em todos os processos cujo nome comecam com <nome_do_programa>.
# se o nome estiver no meio como ("grep xdvi" ) entao o kill nao se aplica neste caso.
# testado no Linux: l[0] - numero do processo; l[4] - nome do processo
#--------------------------------------------------
$pn = shift @ARGV;
foreach $l ( split(/\n/,qx/ps/) ) {
$l =~ s/^\s+//;=
@l = split(/\s+/,$l);
if ($l[4] =~ /^$pn/) {=
system("kill $l[0]");
}
}