Restart process on linux by its pidn number with kill command, how?
Solution 1
There is no “restart” signal. You need to record the environment (environ, cwd, cmdline, security context…) from /proc/<pid>
and manually start the process again.
SIGHUP is close, but it is only used by convention to ask the program to reload its settings.
Solution 2
There is a "RELOAD" signal.
Assume you have a squid
process with pid 1 runs in container, if you restart the squid process the container will exit. but you can "RELOAD" it like this:
kill -HUP 1
Related videos on Youtube
Rubén Marrero
Updated on September 18, 2022Comments
-
Rubén Marrero over 1 year
Well, I want to be able to restart processes on linux and so I looked into
kill
manpages for that. Apparentlykill -l
would list all the signals I could send to a process to do what I need, which are: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
I thought that I would get the desired effect by using
SIGSTOP
signal (number 19) and thenSIGCONT
signal (number 18) like this: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.
I also tried with signal number 1 :
SIGHUP
with pretty much the same results, am I missing something? Does anyone know what I need to reach what I want? -
Rubén Marrero about 9 yearsHow do i record that? (if i use cp it throws an error) and what does SIGHUP?
-
Rubén Marrero about 9 yearsOk, rsync is enough to record that, but how do I restore it?
-
Rubén Marrero about 9 years@jcoppens If i have the exact copy of some /proc/[pid] can I recreate it by wrapping it into exec() or something?
-
jcoppens about 9 yearsI suspect that there are some parameters in the /proc/pid, which might raise alarms. But I'm not an expert on that part.
-
Rubén Marrero over 5 yearshow do you restart it?
-
user5723841 over 5 yearsYou can't restart a process with a pid 1 runs in container, cause the
restart
operation is juststop
and thenstart
, the container would exit immediately when it detect the pid 1 were killed , so thestart
will never happen.kill -HUP 1
will reload the configuration without kill the process, this equal torestart
it.