Modo idiomático para matar -9 somente se a maneira “graciosa” não funcionar?

0

Existe uma maneira comum ou um utilitário existente para fazer o seguinte?

  • kill um processo
  • Aguarde alguns segundos para desligar com graça
  • kill -9 se não parou
por Nathan Long 16.07.2014 / 20:11

3 respostas

2

Normalmente, tento manter as coisas simples como:

kill $pid; sleep 5; kill -9 $pid

Ou você pode pesquisar um processo pelo nome, se quiser:

pkill $pattern; sleep 5; pkill -9 $pattern

Isso é útil quando você está trabalhando em um terminal, mas para scripts você pode preferir uma solução mais sofisticada de outra resposta.

    
por 16.07.2014 / 22:10
0

Coloque isso no seu arquivo ~ / .bashrc. Use-o assim: killany program_name . Ele tentará matar qualquer programa com um nome correspondente.

killany ()
{
    PS=$(ps aux)
    PIDS=$(echo "$PS" | \   
    awk -v proc="$1" '{ reg=proc; if(match($11$12$13$14,reg)) print $2 }')
    if [ -n "$PIDS" ]; then
        echo "killing pids '$PIDS'"
        kill $PIDS 2> /dev/null
        sleep 3
        kill -1 $PIDS 2> /dev/null
        sleep 2
        kill -9 $PIDS 2> /dev/null
    else
        echo "none to kill"
    fi
}
    
por 16.07.2014 / 21:27
0

"Mate-me suavemente"

Acabei de executar o projeto com alguns pequenos scripts de shell para isso.

link

    
por 16.12.2014 / 21:12