Linux

如果已經執行,請不要執行 cron 作業

  • April 16, 2020

我知道這個問題已經被問過了,但我要麼不明白答案,要麼不適用於我。

我有一個 php 腳本,我每 1 分鐘呼叫一次,使用 CPanel 來設置 Cron 作業。腳本的性質意味著它可能會超過一分鐘,所以我需要知道如果第一個尚未完成,如何停止下一個執行。

我有一個執行 CENTOS 5.5 的 VPS 並且可以訪問 WHM 和 CPanel。我以前從未使用過 Linux(昨天才拿到伺服器),所以我不知道我在做什麼,如果可能的話,我希望能得到一些幫助。如果我需要提供更多資訊,請告訴我(我目前不知道您需要什麼資訊)。

謝謝。

請參閱流程管理。您可能想要使用鎖定文件。例如,您可以使用flock

為什麼你不能讓你的工作完成?

你的問題說“我要麼不理解答案,要麼它不適用於我”,但你沒有說是什麼方式。請更具體。

使用 bash 腳本作為您的 cron 作業

cron.sh

#!/bin/bash
$lockfile=/tmp/lock.file

if [ ! -e $lockfile ]; then
  touch $lockfile
  php /path/to/php/script.php
  rm $lockfile
else
  echo "script already running"
fi

引用自:https://serverfault.com/questions/237710