Bashループ再起動プログラム

Bashループ再起動プログラム

私はループで4分ごとにプログラムを閉じて再起動したいと思います(直接閉じることを決めるまで)。
私はこのコードを試しました

#!/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 240amuleスクリプトを続行できるようにバックグラウンドで実行します。

#!/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

関連情報