首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >退出时自动重新启动PHP脚本

退出时自动重新启动PHP脚本
EN

Stack Overflow用户
提问于 2012-03-21 12:02:04
回答 4查看 22.4K关注 0票数 25

有没有一种方法可以在PHP脚本退出时自动重新启动它,无论它是否已经正确退出,或者由于错误而终止,或者内存使用率达到最大值等?

EN

回答 4

Stack Overflow用户

发布于 2012-07-13 10:27:00

龙来了。

高级用法,不适合胆小的人。

要启动单独的进程,请将restartMyself函数更改为:

代码语言:javascript
复制
<?php
    $restartMyself = function () {
        global $_, $argv; 
        if(!pcntl_fork()) // We only care about the child fork
            pcntl_exec($_, $argv);
        die; // insist that we don't tolerate errors  
    }

这当然可能是一次冒险,如果你设法在进程中捕捉到它们,那么追逐那些对你的杀死免疫重启的进程。=)

确保脚本有足够的时间来执行此操作,以便您有足够的时间来终止它。

尝试:

代码语言:javascript
复制
$ kill -9

或者:

代码语言:javascript
复制
$ kill -s KILL

坚持不死生物会死掉。这不是一个空洞的参考,因为您应该明智地考虑僵尸和孤儿,但归根结底,即使是最艰难的进程通常也需要一个父进程,因此杀死shell会话应该会让它们休息。

所有标准免责声明均适用,祝您好运!

票数 9
EN

Stack Overflow用户

发布于 2014-09-22 16:15:26

使用CRON

代码语言:javascript
复制
#!/bin/sh
process = 'script.php'

if ps ax | grep -v grep | grep $process
then
    echo "$process is running..."
else
    echo "$process not running, relaunching..."
    php /your/php/script.php
fi
票数 1
EN

Stack Overflow用户

发布于 2015-09-28 21:38:49

就我的5美分。带有自定义错误处理的PCNTL重新启动..

代码语言:javascript
复制
register_shutdown_function("shutdownHandler");

function shutdownHandler() //will be called when php script ends.
{
    $lasterror = error_get_last();
    switch ($lasterror['type'])
    {
        case E_ERROR:
        case E_CORE_ERROR:
        case E_COMPILE_ERROR:
        case E_USER_ERROR:
        case E_RECOVERABLE_ERROR:
        case E_CORE_WARNING:
        case E_COMPILE_WARNING:
        case E_PARSE:
            $error = "[SHUTDOWN] lvl:" . $lasterror['type'] . " | msg:" . $lasterror['message'] . " | file:" . $lasterror['file'] . " | ln:" . $lasterror['line'];
            myCustomLogHandler("FATAL EXIT $error\n");
    }
    $_ = $_SERVER['_'];
    global $_; 
    pcntl_exec($_);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9798438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档