다른 프로그램에 의해 실행된 프로세스를 종료하지만 해당 프로그램의 다른 인스턴스는 종료하지 않습니다.

다른 프로그램에 의해 실행된 프로세스를 종료하지만 해당 프로그램의 다른 인스턴스는 종료하지 않습니다.

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

관련 정보