是否有 Linux 命令的分支或简单修改版本kill
来提供反馈?我想避免以下循环:
ps acx | grep rogue_agents
killall rogue_agents # alternately, kill 007
ps acx | grep rogue_agents # did it work?
kill -9
如果它在特定时间段后升级,那将是一个不错的奖励。
答案1
您可能想要使用-w
withkillall
来实现这一点:
-w, --wait
Wait for all killed processes to die. killall checks
once per second if any of the killed processes still exist
and only returns if none are left. Note that killall may
wait forever if the signal was ignored, had no effect,
or if the process stays in zombie state.
这样killall -w rogue_agents
就足够了。
编辑:对于您编辑中的额外奖励问题...... (关于在指定的一段时间后将
其升级为)您可以尝试以下操作:( 我现在无法自己尝试这个因为我没有流氓进程:)kill -9
timeout 8 killall -w rogue_agents
timeout 8 killall -9 -w rogue_agents
这将执行killall
等待操作。 使其timeout 8
仅等待 8 秒,之后您可以执行killall -9
。 我也让那个等待 8 秒。 如果killall -9
8 秒后仍未完成,则确实存在问题,需要手动调查。
当然,您可以构建一个测试,如果在初始 8 秒后仍有 rogue_agents 存在,则仅执行第二行killall
。如果进程在第二个之后仍处于活动状态,则回显错误killall -9
。