]> git.wh0rd.org - tt-rss.git/blobdiff - update_daemon2.php
update_daemon2: fix locking
[tt-rss.git] / update_daemon2.php
index 650b101ddcc8b6498d09d15552261d34d26348b2..68989c8e4a130bcfdd582fa70928a6d12c38a153 100644 (file)
        pcntl_signal(SIGCHLD, 'sigchld_handler');
        pcntl_signal(SIGINT, 'sigint_handler');
 
-       $lock_handle = make_lockfile("update_daemon.lock");
-
-       if (!$lock_handle) {
-               die("error: Can't create lockfile ($lock_filename). ".
+       if (file_is_locked("update_daemon.lock")) {
+               die("error: Can't create lockfile. ".
                        "Maybe another daemon is already running.\n");
        }
 
+       if (!pcntl_fork()) {
+               $lock_handle = make_lockfile("update_daemon.lock");
+
+               if (!$lock_handle) {
+                       die("error: Can't create lockfile. ".
+                               "Maybe another daemon is already running.\n");
+               }
+
+               while (true) { sleep(100); }
+       }
+
        while (true) {
 
                $next_spawn = $last_checkpoint + SPAWN_INTERVAL - time();
 
-               print "[MASTER] active jobs: $running_jobs, next spawn at $next_spawn sec\n";
+               if ($next_spawn % 10 == 0) {
+                       print "[MASTER] active jobs: $running_jobs, next spawn at $next_spawn sec\n";
+               }
 
                if ($last_checkpoint + SPAWN_INTERVAL < time()) {