スクリプト上で実行する場合は、バックグラウンド・プロセスとして実行して確認してくださいそれが何か(OS、他のユーザー、...)
によって殺されることはありませんもう一つの方法は、トリガーにcronジョブを使用しているしなければなりません自動的にスクリプトが複雑になります。
cronジョブの設定:
* * * * * bash test_curl.sh >> log_file.log
シェルスクリプトtest_curl.sh:
#!/bin/bash
# Declare some variable
EXECUTE_TIME_FILE_PATH="./execute_time"
# load expected execute time
EXPECTED_EXECUTE_TIME=$(cat $EXECUTE_TIME_FILE_PATH)
echo "Start at $(date)"
# calculate current time and compare with expected execute time
CURRENT_MINUTE_OF_TIME=$(date +'%M')
if [[ "$EXPECTED_EXECUTE_TIME" == "$CURRENT_MINUTE_OF_TIME" ]];
then
curl http://localhost:8080
# Random new time from 5 -> 30
NEXT_RANDOM=$((RANDOM%25+5))
# Get current time
CURRENT_TIME=$(date +'%H:%M')
# Calculate next expected execute time = Current Time + Next Random
NEXT_EXPECTED_EXECUTE_TIME=$(date -d "$CURRENT_TIME $NEXT_RANDOM minutes" +'%M')
# Save to file
echo -n $NEXT_EXPECTED_EXECUTE_TIME > $EXECUTE_TIME_FILE_PATH
echo "Next Executed time is $(date -d "$CURRENT_TIME $NEXT_RANDOM minutes" +'%H:%M')"
else
echo "This $(date +'%H:%M') is not expected time to run test"
fi
echo "End at $(date)"
あなたは簡単にそれを読むことができますので、私はラインでコメントアウト。 **
更新:重要度:ファイルexecute_timeには初期値が必要です。 の例では、初めて実行したときの現在の分です。
**
は、どのように私はこのコードを呼び出すのですか?上記のコードを実行した後も常に端末を開いたままにしておく必要がありますか? – asdlfkjlkj
https://stackoverflow.com/questions/12973777/how-to-run-a-shell-script-at-startup – user3486184