【发布时间】:2020-12-07 14:41:44
【问题描述】:
我想知道您是否有任何脚本可以获取正在休眠的进程 (S) 的 PID 并自动重新启动它
restart_pid() {
# First we need to find the program's arguments
SAVED_COMMAND="$(while IFS= read -r -d $'\0' f; do printf '%q ' "$f"; done < /proc/$1/cmdline)"
# Then we need to cd into its directory so that we stay as true to the intial conditions as possible
cd /proc/$1/cwd
# Now kill the process
kill $1
# Now we can restart the process
eval $SAVED_COMMAND
}
ps -ef
Zoho 3
htop
restart_pid 23924
kill -HUP 23924
我使用脚本通过 PID 重新启动进程,但每次我都需要在脚本中传递 PID。 有什么办法可以自动化吗?
【问题讨论】:
-
可能有很多进程处于休眠状态?
-
有时机器没有完成这个过程并且已经执行了另一个。因此,我需要获取休眠进程的 PID 并自动重新启动它们。休眠进程消耗大量 CPU。
-
"休眠进程消耗大量 CPU"?休眠进程不应消耗任何明显的 CPU。
-
是的,但是在重新启动运行了200多个小时的“S”状态的进程的PID时,我释放了一个CPU。那么,我想知道是否可以自动重启处于“R”和“S”状态的进程?