web-dev-qa-db-fra.com

Processus de redémarrage sur Linux par son numéro PIDN avec la commande Kill, comment?

Eh bien, je veux être capable de redémarrer les processus sur Linux et j'ai donc examiné kill Mains pour cela. Apparemment kill -l listerait tous les signaux que je pourrais envoyer à un processus pour faire ce dont j'ai besoin, ce qui sont:

 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

Je pensais que je recevrais l'effet désiré en utilisant SIGSTOP signal (numéro 19), puis SIGCONT signal (numéro 18) comme celui-ci:

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.

J'ai aussi essayé avec le signal numéro 1: SIGHUP avec à peu près les mêmes résultats, je manque quelque chose? Est-ce que quelqu'un sait ce que je dois atteindre ce que je veux?

5
Rubén Marrero

Il n'y a pas de signal "redémarrage". Vous devez enregistrer l'environnement (environ, CWD, CMDLINE, Contexte de sécurité ...) de /proc/<pid> et démarrer manuellement le processus à nouveau.

Sighup est proche, mais il n'est utilisé que par convention pour demander au programme de recharger ses paramètres.

5
user1686

Il y a un signal "recharger".

Supposez que vous avez un processus squid avec PID 1 exécute dans le conteneur, si vous redémarrez le processus de calmars, le conteneur s'éteindra. Mais vous pouvez "recharger" cela comme ceci:

kill -HUP 1
0
user5723841