Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
#!/usr/bin/php -q
2
<?php
3
/**
4
 * System_Daemon turns PHP-CLI scripts into daemons.
5
 *
6
 * PHP version 5
7
 *
8
 * @category  System
9
 * @package   System_Daemon
10
 * @author    Kevin <kevin@vanzonneveld.net>
11
 * @copyright 2008 Kevin van Zonneveld
12
 * @license   http://www.opensource.org/licenses/bsd-license.php New BSD Licence
13
 * @link      http://github.com/kvz/system_daemon
14
 */
15
 
16
/**
17
 * System_Daemon Example Code
18
 *
19
 * If you run this code successfully, a daemon will be spawned
20
 * and stopped directly. You should find a log enty in
21
 * /var/log/simple.log
22
 *
23
 */
24
 
25
// Make it possible to test in source directory
26
// This is for PEAR developers only
27
ini_set('include_path', ini_get('include_path').':..');
28
 
29
// Include Class
30
error_reporting(E_ALL);
31
require_once "System/Daemon.php";
32
 
33
 
34
// Allowed arguments & their defaults
35
$runmode = array(
36
    "no-daemon" => false,
37
    "help" => false,
38
    "write-initd" => false,
39
    "logfirst" => false,
40
);
41
 
42
// Scan command line attributes for allowed arguments
43
foreach ($argv as $k=>$arg) {
44
    if (substr($arg, 0, 2) == "--" && isset($runmode[substr($arg, 2)])) {
45
        $runmode[substr($arg, 2)] = true;
46
    }
47
}
48
 
49
 
50
// Bare minimum setup
51
System_Daemon::setOption("appName", "simple");
52
System_Daemon::setOption("appDescription", "Testing");
53
System_Daemon::setOption("authorEmail", "kevin@vanzonneveld.net");
54
 
55
//System_Daemon::setOption("appDir", dirname(__FILE__));
56
System_Daemon::log(System_Daemon::LOG_INFO, "Daemon not yet started so ".
57
    "this will be written on-screen");
58
 
59
function fncProcessJobs() {
60
    return true;
61
}
62
 
63
// Spawn Deamon!
64
System_Daemon::start();
65
 
66
$runningOkay = true;
67
while (!System_Daemon::isDying() && $runningOkay) {
68
    if ($runmode['logfirst']) {
69
        System_Daemon::getOption("appName");
70
    }
71
 
72
    $runningOkay = fncProcessJobs();
73
    echo " - ".time()."\n";
74
    System_Daemon::iterate(2);
75
}
76
 
77
// Your normal PHP code goes here. Only the code will run in the background
78
// so you can close your terminal session, and the application will
79
// still run.
80
 
81
System_Daemon::stop();