杀死由另一个程序执行的进程,但不杀死该程序的其他实例

杀死由另一个程序执行的进程,但不杀死该程序的其他实例

我写了一个小 shell 脚本,它在 i3 中启动一个视频背景的 mplayer 实例;拱。现在,我想每 15 秒终止该进程并重新启动它。但是,由于该后台将一直运行,按名称杀死将导致“iCantUseMplayerAnymorePlzHelp”那么,我怎样才能杀死该进程呢?

对于 bg,我执行以下命令:

mplayer -loop 0 -rootwin -ao null -noconsolecontrols -fs VIDEOPATH

答案1

如果你想启动 mplayer,在 15 秒后杀死它并重复直到脚本本身被杀死,你可以这样做:

#!/bin/sh

while true; do
  ## launch mplayer in the background
  mplayer -loop 0 -rootwin -ao null -noconsolecontrols -fs VIDEOPATH &
  ## wait for 15 seconds
  sleep 15
  ## kill the 1st backgrounded job of this subshell
  kill %1
done

相关内容