如何在强制杀死之前给它几秒钟的时间来杀死一个进程?

sor*_*rin 5 process kill

我确实有要被杀死的进程的 PID,但我确实想让它有机会平静地死亡,而不是做 -9。

预期行为:检查 PID 是否仍在运行长达 10 秒并对其执行 kill -9。

如果您可以在一行中完成此操作,则额外奖励。

Sté*_*las 0

kill -- "$pid"; sleep 10; kill -s KILL -- "$pid"
Run Code Online (Sandbox Code Playgroud)

如果在基于 Debian 的系统上:

echo "$pid" | start-stop-daemon --pidfile /dev/stdin --stop --oknodo --name "$process_name" --user "$user" --retry 10
Run Code Online (Sandbox Code Playgroud)

它允许您指定匹配条件(例如用户名和命令名),以避免在 pid 被重用的情况下杀死错误的进程。

  • 我会在“sleep”之后添加额外的检查,可能使用“ps”来确保进程仍在运行,并且 pid 仍然分配给同一进程。 (2认同)