草庐IT

PHP CLI 进程在完成后不会终止

我在一个PHP文件中有这个:echoshell_exec('nohup/usr/bin/php-f'.CRON_DIRECTORY.'testjob.php>/dev/null2>&1&');在testjob.php中我有:file_put_contents('test.txt',time());exit;这一切都运行得很好。但是,如果我进入流程,它不会在运行后终止testjob.php。 最佳答案 (由于stackoverflow仍然不允许我发表评论,所以必须将此作为答案而不是评论发布...)适合我。我完全按照描述制作了testj

php - 重新启动 Apache 终止后台进程

我有一个脚本startbg.php:echo`/usr/bin/php$dir/runbg.php>>$dir/logbg.txt2>&1&`;我从网络调用(通过HTTP/Apache)。它在后台进程中运行runbg.php。但是如果我重新启动Apache(/etc/init.d/apache2restart),后台进程就会被杀死。无论如何我可以让进程在后台运行吗? 最佳答案 你可以打开一个PHP'sinternalwebserver的实例(从PHP5.4.0开始,CLISAPI提供了一个内置的Web服务器。)在我的测试中,杀死ht

php - 使用 Symfony 控制台 (CTRL+C) 捕获终端终止/退出

我已经构建了一个触发从互联网下载文件的命令,但是由于这些文件需要由另一个组件处理,我们需要确保每个已下载且在过去10年内未被修改的文件秒,是一个正确的视频,没有损坏/部分下载。出于这个原因,我们需要找到一种方法来捕获CTRL+C或命令终止并清除任何未成功下载的适用文件。到目前为止,这是我使用symfony/console和symfony/event-dispatcher尝试的:#!/usr/bin/envphpload();$logger=newLogger('console');$dispatcher=newEventDispatcher();$dispatcher->addList

php - 如何终止 PHP session ?

这个一般性话题之前已经出现过,here,here,here,毫无疑问,互联网上的其他地方也是如此。在我的例子中,与这些不同,挂起是由一个永远不会收到消息的阻塞套接字引起的,也许这就是为什么那里描述的解决方案对我不起作用的原因。我正在串联开发一个C++应用程序,它通过本地套接字连接与php脚本通信,当C++应用程序崩溃时,它让php脚本的套接字等待一条永远不会到来的消息。我试过使用session_destroy和session_unset(在session_start之前在脚本中首先调用它们)但它们不起作用;即使退出并重新启动浏览器也无济于事。如果删除session_start,我只能停

php - 将 PHP 进程作为守护进程运行,同时从后台安全地终止它

我们正在运行一个PHP守护进程,它查看队列、接收工作任务并派生工作人员来处理它。在继续之前,工作人员自己会锁定特定位置。我们将守护进程生成为nohup后台进程。整个体系结构似乎都可以工作,除非我们出于某种原因必须终止进程。如果我们使用-9杀死它们,则无法将其困在工作进程中并在死亡前释放锁。如果我们使用小于-9的值(如TERM或HUP),它似乎不会被守护进程或工作进程接收。有没有人以更好的方式解决了这个问题?(ps:顺便说一句,出于其他考虑,我们可能无法更改我们的实现语言,所以请只考虑基于PHP的解决方案) 最佳答案 我也遇到过相关问

php - CakePHP 2.2 是否有终止支持日期?还是版本?

我试过查看CakePHP站点,但找不到任何关于CakePHP2.X支持何时终止的信息。我试过在#cakephpircchannel询问某人并从一个人那里得到了这个答案Iwouldtakeitthatbecause1.3supportendedwhen3.xcameout,that2.xsupportwillendwhen4.xisreleased然而,这是未经证实的,我希望有人能回答这个问题,并提供来源或来自开发团队的相关人员。 最佳答案 还没有做出任何终止对CakePHP2.x支持的决定。在可预见的将来,它将继续维护。当前的2.6

php - 将 C(\0 终止)字符串转换为 PHP 字符串

PHP是我定期使用的语言之一,但当我再次开始使用它时,通常必须除尘。本周我将一些C代码移植到PHP时也是如此。这使用了大量的AES加密和SHA256散列-到目前为止一切正常。然而,解密的字符串以“C”形式出现-即以零字节结尾,后跟“垃圾”填充字节。我目前使用以下代码将这些C风格的字符串“修剪”为PHP形式:$iv=strpos($hashsalt8,"\0");if($iv)$hashsalt8=substr($hashsalt8,0,$iv);似乎很啰嗦,应该有一行函数调用,但我找不到它?注意:虽然在这种情况下“散列盐”名称暗示我可能知道原始字符串的长度,但在一般情况下这是未知的。显

php - uwamp apache 错误 - 无法终止进程

我有UwAmp3.1.0,有时无论安装的PHP版本如何,Apache都无法正常关闭。日志文件告诉我[ThuMar0312:50:58.3858932016][mpm_winnt:crit][pid544:tid236]AH02538:Child:Parentprocessexitedabruptly.Childprocessisending这里是apache的配置文件http://pastebin.com/iJZmdS3AWindows7和windows10都有问题谢谢 最佳答案 我觉得是电脑的问题。我在多台计算机上使用“安装”在U

PHP cron 作业由于最大执行时间 fatal error 而提前终止

我有一个PHPcron作业在运行29分钟后失败。日志中的错误(/var/log/php_errors.log)是:[01-Mar-201200:32:57UTC]PHPFatalerror:Maximumexecutiontimeof60secondsexceededin/path/file.phponline2079触发cron的crontab条目是:0000***/usr/bin/php/path/file.php根据我的研究,我认为这与max_execution_time配置设置无关,因为:我确实知道它运行了29:18分钟(即比错误消息多了60秒)。来自thePHPdocs-从命

nginx - 当用户中止请求时,如何让 PHP-FPM 进程终止? (Nginx)

我知道Nginx与PHP-FPM进程无关,但我更希望PHP-FPM进程在用户中止时终止,这样它就不会继续做不必要的事情或浪费资源。对于PHP-FPM/Nginx,无论用户是否中止,trigger_error都会发生:我如何为PHP-FPM执行用户中止操作?(如果可能的话) 最佳答案 这不是由php-fpm实现的,更多信息here.设置ignore_user_abort(FALSE)仅在PHP通过套接字发送数据时有效,而不是在它忙于计算响应时有效。理想情况下,它应该在php-fpm中实现,但我认为这不会很容易,因为PHP大多是单线程的