我有一台装有 Lightspeed(Web 服务器)、PHP5、Mysql、TCPDF 和 sendmail 的 Ubuntu 10.04 服务器,我需要为队列运行 cron 作业,如果任何作业已经在运行,那么它必须创建队列,如果没有,那么它将转到 tcpdf 文件夹 sendmail。
我从 serverfault 获得一个代码
`PIDFILE=/tmp/`basename $0`.pid
if [ -f $PIDFILE ]; then
if ps -p `cat $PIDFILE` > /dev/null 2>&1; then
echo "$0 already running!"
exit
fi
fi
echo $$ > $PIDFILE
trap 'rm -f "$PIDFILE" >/dev/null 2>&1' EXIT HUP KILL INT QUIT TERM`
但是我不明白如何运行该节目,能否帮助我,对不起我的英语。
答案1
您可以在 php 中完成所有操作,例如 my_cron.php 内容:
<?php
$pid = '/tmp/my_cron.pid';
if (file_exists($pid)) {
echo "Already running.";
exit;
} else {
exec ("touch $pid"); # create the pid file
# do what you are supose to do here
}
unlink($pid);
?>
然后在你的 cronjob 中有类似这样的内容:
23 0-23/2 * * * /usr/bin/php /path/to/my/php/file/my_cron.php