如果已经在运行,不要运行 cron 作业

web*_*oob 4 linux php cron

我知道已经有人问过这个问题,但我要么不明白答案,要么不适用于我。

我有一个 php 脚本,我每 1 分钟调用一次,使用 CPanel 设置 Cron 作业。脚本的性质意味着它可能会超过一分钟,所以我需要知道如果第一个没有完成,如何停止下一个运行。

我有一个运行 CENTOS 5.5 的 VPS,可以访问 WHM 和 CPanel。我以前从未使用过 Linux(昨天才拿到服务器),所以我不知道我在做什么,如果可能的话,希望得到一些帮助。如果我需要提供更多信息,请告诉我(我目前不知道您需要什么信息)。

谢谢。

Den*_*son 5

请参阅流程管理。您可能想要使用锁定文件。您可以使用flock例如。

为什么你不能让你的工作完成呢?

你的问题说“我要么不明白答案,要么它不适用于我”,但你没有说是以什么方式。请说得更具体一些。


pab*_*blo 5

使用 bash 脚本作为您的 cron 作业

定时任务

#!/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
Run Code Online (Sandbox Code Playgroud)