У меня есть сервер Ubuntu 10.04 с Lightspeed (веб-сервер), PHP5, Mysql, TCPDF и sendmail, мне нужно запустить задание 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`
но я не понимаю, как управлять шоу, может также помочь мне с тем же извинением за мой английский.
Вы можете сделать все это на php, например my_cron.php content:
<?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