4d1ebe6dc78b182c770ab0e0fc7e48253bf1a066
[atutor.git] / mods / wiki / tools / cron.d / S18lock.php
1 <?php
2 /*
3    Creates a lock file, so the cron scripts aren't run two times at
4    once.
5 */
6
7 #-- cfg
8 define("CRON_LOCK_STALE", 1000);  // in seconds, remove any lock after that
9
10 #-- file name
11 if (!defined("CRON_LOCK")) {
12    define("CRON_LOCK", EWIKI_TMP . "/ewiki-crond-runparts.$_SERVER[SERVER_NAME].lock");
13 }
14
15 #-- check for existence
16 if (file_exists(CRON_LOCK)) {
17    echo "[$cron]: cron lock file detected\n";
18    if ((filemtime(CRON_LOCK) + CRON_LOCK_STALE) < time()) {
19       echo "[$cron]: was stale lock file, removing\n";
20       unlink(CRON_LOCK);
21       echo "[$cron]: creating fresh lock file '".CRON_LOCK."'\n";
22       if (!touch(CRON_LOCK)) {
23          $HALT = 1;
24       }
25    }
26    else {
27       echo "[$cron]: you must delete '".CRON_LOCK."' manually to overcome this\n";
28       echo "[$cron]: shutting down run-parts\n";
29       $HALT = 2;
30    }
31 }
32 else {
33    echo "[$cron]: creating lock file '".CRON_LOCK."'\n";
34    touch(CRON_LOCK);
35 }
36
37 ?>