0

ずっと実行したいphpファイルを作成しました。次に、スクリプトがまだ実行されていることを確認するためにCRONで実行する基本的なラッパーを作成し、必要に応じて再起動します。

私のcrontab -eエントリは次のようなものです。

20 * * * * /var/www/bot/cron.php

cron.phpの内容は次のようになります。

#!/usr/bin/php
<?php
@exec ('ps aux | grep loop', $output, $ret_var);

$running = false;
foreach ($output as $line)
{
    if (strpos($line, 'bot.php') !== false)
    {
        $running = true;
        break;
    }
}

if (! $running)
{
    @exec('/usr/bin/nohup php ' . __DIR__ . '/bot.php >/var/log/bot_out 2>&1 &');
}

die();

ただし、これを機能させるのに問題があります。足りないものはありますか?

エラーログには何も表示されず、/var/log/bot_out実行時エラーも表示されるので、PHPを呼び出す必要があることはわかっています。

PHP Warning:  Module 'apc' already loaded in Unknown on line 0
PHP Warning:  Module 'suhosin' already loaded in Unknown on line 0
4

1 に答える 1

1
20 * * * * /var/www/bot/cron.sh

次にcron.shの内容

#!/bin/bash
KP=$(pgrep -P 1 -f bot.php)
if [ "X$KP" = "X" ]
  then
    /usr/bin/nohup php PATH_TO_YOUR_SCRIPT/bot.php 
fi
于 2012-10-02T16:19:51.280 に答える