Como tornar o processo “terminável” apenas por SIGHUP ou SIGKILL?

0

Eu escrevi um script que deveria matar processos presos. Primeiramente, ele tenta o SIGTERM mais fraco, se ele não funcionar, ele tenta o SIGHUP, e se mesmo isso não ajudar, ele fará um SIGKILL. Agora eu quero tentar se esse script funcionar praticamente.

Como posso tornar o processo travado ou congestionado, então ele pode ser interrompido apenas pelo sinal HUP ou KILL?

    
por PKM 25.06.2017 / 01:31

1 resposta

1

Provavelmente, a maneira mais simples seria escrever um script bash mínimo, usando o trap incorporado para especificar um manipulador de sinal personalizado:

#!/bin/bash

function mysighandler {
  printf 'ignoring TERM signal\n'
}

trap mysighandler SIGTERM

while :
do
  printf 'Running. . .\n'
  sleep 2
done

Você poderia definir o manipulador para a cadeia nula, o que faria com que o sinal fosse ignorado silenciosamente - mas a criação de um manipulador mínimo permite que você confirme que ele foi interceptado.

Como alternativa, escreva um pequeno programa em C que use a signal API - consulte man 2 signal .

    
por steeldriver 25.06.2017 / 02:06