bash 루프 프로그램 다시 시작

bash 루프 프로그램 다시 시작

나는 루프로 4분마다 프로그램(amule)을 닫았다가 다시 시작하고 싶습니다(스스로 닫기로 결정할 때까지).
나는이 코드를 시도했다

#!/bin/bash
for (( ; ; ))
do
amule
sleep 240;
wmctrl -c aMule;
done  

하지만 작동하지 않습니다(종료 시 확인을 비활성화한 후에도).

편집
1) 나는평균이 스크립트는 240초 후에 amule을 닫고(죄송합니다 180은 실수였습니다) 그런 다음 (즉시) 다시 열어야 합니다. 그런 다음 240 이후 다시 닫고 다시 여는 등의 작업을 수행합니다.
2) 그래요.이름정확하며 konsole에서 해당 라인 /(wmctrl -c aMule;)을 실행하려고 하면 작동합니다.

편집 나는 그렇게하려고했습니다 : 1) 새 스크립트 만들기 :

wmctrl -c aMule
sleep 10
amule  

2) crontab에 이 스크립트 추가(6분마다 실행)

그러나 "wmctrl -c aMule" 명령은터미널에서 작동, (그러한) 스크립트에서는 작동하지 않습니다.
왜인지 이해가 안 돼요...

답변1

amule전경에서 작동합니다. 귀하의 스크립트는 절대 sleep 240. amule백그라운드에서 실행되므로 스크립트를 계속할 수 있습니다.

#!/bin/sh

while :; do
   amule &     # run in background
   sleep 240
   killall amule
      # or   wmctrl -c aMule
   wait         # in case amule needs time to close
done

답변2

watch -n 240 'amule;wmctrl -c aMule'

답변3

또는 중 어느 것을 설치했는지 에 따라 또는 wmctrl -c aMule;으로 교체해 볼 수 있습니다 . amule이 TERM 신호를 무시하는 경우 이전에 옵션을 추가해야 할 수도 있습니다 .killlall amulepkill amulekillallpkill-KILLamule

관련 정보