毎秒特定のスクリプトを実行するには?

毎秒特定のスクリプトを実行するには?

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

関連情報