是否有带反馈的 kill 版本?

是否有带反馈的 kill 版本?

是否有 Linux 命令的分支或简单修改版本kill来提供反馈?我想避免以下循环:

ps acx | grep rogue_agents
killall rogue_agents # alternately, kill 007
ps acx | grep rogue_agents # did it work?

kill -9如果它在特定时间段后升级,那将是一个不错的奖励。

答案1

您可能想要使用-wwithkillall来实现这一点:

   -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 -98 秒后仍未完成,则确实存在问题,需要手动调查。

当然,您可以构建一个测试,如果在初始 8 秒后仍有 rogue_agents 存在,则仅执行第二行killall。如果进程在第二个之后仍处于活动状态,则回显错误killall -9

相关内容