crontabを試しましたが、数分に制限されています。他のオプションがありますか?
私も同様のことを試しました。
watch -n 1 sh /path-to-script/try.sh
ただし、端末を閉じるたびに停止します。私はバックグラウンドで動作し続けたいです。
答え1
while
ループとnohup
。
the_script.sh:
while :; do
/path-to-script/try.sh
sleep 1
done
the_script.sh
途切れの影響を受けずに実行:
nohup /path/to/the_script.sh > /dev/null
/dev/null
.txtファイルの内容が重要な場合は、ファイルパスに置き換えてくださいstdout
。
答え2
あなたが提供した情報によると、最良の答えは最も簡単な答えです。無限ループと1秒遅れのシェルスクリプトを使用してください。
#!/bin/bash
# Program that checks if MySQL is running
while [ 1 = 1 ]; do
<your code here>
sleep 1
done
スクリプトが端末の外部で実行されるようにします。このようにしてバックグラウンドで実行されます。
より具体的な回答を得るには、どのコマンドを使用して実行されない場合はどうすればよいかを知る必要があります。例えば。通知やメールを送信してください。
答え3
このルーチンは、すでに実行されていない限り、毎秒 try.sh を実行し続けます。すでに実行中の場合は、前の実行が終了するまで一時停止します。
loop_script.sh:
while true; do
if [[ ! $(pgrep -x /path-to-script/try.sh) -gt 1 ]]; then
/path-to-script/try.sh
fi
sleep 1
done
次のように実行します。
nohup /path/to/loop_script.sh & > /dev/null
次に、クリックして^C
コンソールを再インポートします。
次のコマンドを使用してkill
停止する必要があります。loop_script.sh