web-dev-qa-db-ja.com

特定のスクリプトを毎秒実行するにはどうすればよいですか?

Crontabを使用してみましたが、数分に制限されています。他のオプションはありますか?

私も次のようなことを試しました:

watch -n 1 sh /path-to-script/try.sh

しかし、ターミナルを閉じるたびに停止します。バックグラウンドで継続的に機能するものが欲しい。

3
Prashant Luhar

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

stdoutの内容が気になる場合は、/dev/nullをファイルパスに置き換えます。

4
NarūnasK

あなたが提供した情報に基づいて、最良の答えはおそらく最も単純なものです。無限ループと1秒の遅延があるシェルスクリプトを使用します。

#!/bin/bash
# Program that checks if MySQL is running
while [ 1 = 1 ]; do
<your code here>
sleep 1
done

スクリプトを端末の外部で実行します。このようにして、バックグラウンドで実行されます。

より具体的な回答を得るには、使用するコマンドと、コマンドが実行されていない場合の動作を知る必要があります。例えば。通知またはメールを送信します。

0
TheNH813