나는 루프로 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 amule
pkill amule
killall
pkill
-KILL
amule