他のプログラムによって実行されたプロセスを終了しますが、そのプログラムの他のインスタンスは終了しません。

他のプログラムによって実行されたプロセスを終了しますが、そのプログラムの他のインスタンスは終了しません。

i3; archでビデオの背景として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

おすすめ記事