Shell-Script

殺死由另一個程序執行的程序,但沒有該程序的其他實例

  • March 17, 2018

我寫了一個小 shell 腳本,它在 i3 中為影片背景啟動一個 mplayer 實例;拱。現在,我想每 15 秒終止一次該程序並重新啟動它。但是,由於該後台將一直執行,按名稱殺死會導致“iCantUseMplayerAnymorePlzHelp”那麼,我怎樣才能殺死那個程序呢?

對於 bg,我執行以下操作:

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

如果要啟動 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

引用自:https://unix.stackexchange.com/questions/430749