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;killlall amule或替換,具體取決於您安裝了pkill amule哪個killall或。如果 amule 忽略 TERM 訊號,pkill您可能需要-KILL在先前新增該選項。amule

相關內容