Reinicia o processo no linux pelo seu número pidn com o comando kill, como?

3

Bem, eu quero poder reiniciar processos no linux e então eu olhei para kill manpages para isso. Aparentemente kill -l listaria todos os sinais que eu poderia enviar para um processo para fazer o que eu preciso, quais sejam:

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

Eu pensei que obteria o efeito desejado usando SIGSTOP signal (número 19) e, em seguida, SIGCONT signal (número 18) assim:

kill -19 $PID_NUMBER # It stops! nice, we are reaching just what we wanted.
kill -18 $PID_NUMBER # Ok... it continues to death... that isn't funny though.

Eu também tentei com o número de sinal 1: SIGHUP com praticamente os mesmos resultados, estou faltando alguma coisa? Alguém sabe o que eu preciso para alcançar o que eu quero?

    
por 127.0.0.1 29.04.2015 / 22:27

2 respostas

5

Não há sinal de “reinicialização”. Você precisa registrar o ambiente (environ, cwd, cmdline, contexto de segurança…) em /proc/<pid> e iniciar manualmente o processo novamente.

O SIGHUP está próximo, mas só é usado por convenção para solicitar que o programa recarregue suas configurações.

    
por 29.04.2015 / 22:50
0

Existe um sinal "RELOAD".

Suponha que você tenha um processo squid com pid 1 executado no contêiner, se você reiniciar o processo do squid, o contêiner será encerrado. mas você pode "RECARREGAR" assim:

kill -HUP 1
    
por 20.09.2018 / 05:20