首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

保持PHP脚本作为守护进程运行的最佳方法是什么?

保持PHP脚本作为守护进程运行的最佳方法是使用Supervisor进行进程管理。Supervisor是一个开源的进程管理工具,可以帮助您监控、启动、停止和重新启动PHP守护进程。以下是使用Supervisor的步骤:

  1. 安装Supervisor: 在终端中输入以下命令来安装Supervisor:sudo apt-get install supervisor
  2. 创建一个Supervisor配置文件: 在/etc/supervisor/conf.d目录下创建一个新的配置文件,例如my_php_daemon.conf。在该文件中,添加以下内容:[program:my_php_daemon] command=/path/to/your/php/script.php directory=/path/to/your/php/script/directory user=your_username autostart=true autorestart=true stderr_logfile=/var/log/supervisor/my_php_daemon.err.log stdout_logfile=/var/log/supervisor/my_php_daemon.out.log其中,command指定您的PHP脚本的路径,directory指定脚本所在的目录,user指定运行脚本的用户。autostartautorestart选项用于指定Supervisor在启动时自动启动该脚本,并在脚本出现错误时自动重启。stderr_logfilestdout_logfile选项用于指定错误和输出日志文件的路径。
  3. 更新Supervisor配置: 在终端中输入以下命令来更新Supervisor的配置:sudo supervisorctl reread sudo supervisorctl update
  4. 启动PHP守护进程: 在终端中输入以下命令来启动PHP守护进程:sudo supervisorctl start my_php_daemon
  5. 查看进程状态: 在终端中输入以下命令来查看PHP守护进程的状态:sudo supervisorctl status my_php_daemon

通过使用Supervisor,您可以确保PHP脚本作为守护进程运行,并可以轻松地监控、启动、停止和重新启动该脚本。此外,Supervisor还提供了一些高级功能,例如进程组管理、事件监听和自定义日志处理,可以帮助您更好地管理您的PHP守护进程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在Docker守护进程停机期间保持容器运行(即重启Docker时,正在运行容器不会停止)

前言: 在默认情况下,当 Docker 守护进程终止时,它将关闭正在运行容器。不过,我们可以配置该守护进程,以便在该守护进程不可用时容器仍在运行。这种功能称为实时恢复。...实时还原选项有助于减少由于守护进程崩溃、计划中断或升级而导致容器停机时间。...Docker官方相关详细文档:https://docs.docker.com/config/containers/live-restore/ 具体方法: 1.将配置添加到守护进程配置文件中。...Up 32 minutes 0.0.0.0:1521->1521/tcp, :::1521->1521/tcp oracle_11g 可以看到在我们重启完Docker后,上面在运行两个容器运行时间分别为...1小时、32分钟,容器并没有在我们重启Docker时停止,而是一直保持运行状态 。

3.7K20

php进程daemon化正确实现方法

前言 daemon 音标 : [‘di:mən] , 中文含义为守护神或精灵意思 . 其实它还有个意思 : 守护进程 . Daemon程序是一直运行服务端程序,又称为守护进程。...通常在系统后台运行,没有控制终端不与前台交互,Daemon程序一般作为系统服务使用。Daemon是长时间运行进程,通常在系统启动后就运行,在系统关闭时才结束。...一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行Daemon程序称作守护进程。...每个进程都有一个父进程,子进程退出,父进程能得到子进程退出状态。 守护进程简单地说就是可以脱离终端而在后台运行进程 ....php脚本以daemon形式运行在系统中 , 结束后自动推出 .

85220

区分 CGI FastCGI PHP-CGI PHP-FPM

PHP-CGI 是 PHP CGI 版本,它可以让 PHP 脚本在 Web 服务器上运行,但由于 CGI 低效率,PHP-CGI 性能也比较低。...作用举例: 如果使用 CGI 或 PHP-CGI 来运行 PHP 脚本,每次请求都需要启动一个新进程,效率较低。而如果使用 FastCGI 或 PHP-FPM,则可以使用长连接方式,提高效率。...FastCGI FastCGI 是语言无关、可伸缩架构 CGI 开放扩展,其主要行为是将 CGI 解释器进程保持在内存中并因此获得较高性能。...(PHP-FPM 和 Spawn-FCGI 就没有这个问题,守护进程会平滑从新生成新进程。) PHP-FPM PHP-FPM 是一个 PHP FastCGI 管理器,是只用于 PHP。...PHP-FPM 是 PHP 针对 FastCGI 协议具体实现,也是 PHP 在多种服务器端应用编程端口(SAPI:cgi、fast-cgi、cli、isapi、apache)里使用最普遍、性能最佳一款进程管理器

19130

PHP强化之22 - CGI、FastCGI与PHP-FPM

PHP-CGI不足: 1)php-cgi变更php.ini配置后需重启php-cgi才能让新php-ini生效,不可以平滑重启。 2)直接杀死php-cgi进程php就不能运行了。...(PHP-FPM和Spawn-FCGI就没有这个问题,守护进程会平滑从新生成新进程。) 四、FastCGI 从根本上来说,FastCGI是用来提高CGI程序性能。...FastCGI是语言无关、可伸缩架构CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中,并因此获得较高性能。...FastCGI工作原理: FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。...FastCGI子进程接着等待,并处理来自FastCGI进程管理器(运行在Web Server中)下一个连接。 在CGI模式中,php-cgi在此便退出了。

69710

Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

最新版本已经到5.3.2,如果在php5.1.6基础上安装phpmyadmin,则会提示php版本过低,这时候,EPEL中提供较新php rpm就能很方便派上用场了。...4.Supervisor配置守护进程 Supervisor是用Python开发Linux/Unix系统下一个进程管理工具。它可以使进程脱离终端,变为后台守护进程(daemon)。...其主要组成部分: supervisord:Supervisor守护进程服务,用于接收进程管理命令; supervisorctl:Supervisor命令行工具,用于和守护进程通信,发送管理进程指令;...这样,Supervisor会自动加载该目录下.conf后缀文件作为共同服务配置。...其它Linux发行版开机启动脚本 User-contributed OS init scripts for Supervisor Supervisorctl管理进程 Supervisor服务启动后,受其管理进程会在后台运行

79120

全面了解CGI、FastCGI、PHP-FPM

一、抛个砖 1、Web Server传递数据方法 正式说CGI之前,先来了解一下Web Server传递数据另外一种方法PHP Module加载方式。..._module,就是把php作为apache一个子模块来运行。...被设计为一个独立运行后台进程,它会建立一个处理请求进程或线程池) 所以,以上apache调用php执行过程如下: apache -> httpd -> php5_module -> sapi ...FastCGI是和语言无关、可伸缩架构CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中,并因此获得较高性能。...(CGI程序和FastCGI程序,可以理解成遵循CGI协议和FastCGI协议编写程序) FastCGI工作原理: FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程

82500

全面了解CGI、FastCGI、PHP-FPM

一、抛个砖 1、Web Server传递数据方法 正式说CGI之前,先来了解一下Web Server传递数据另外一种方法PHP Module加载方式。..._module,就是把php作为apache一个子模块来运行。...FastCGI是和语言无关、可伸缩架构CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中,并因此获得较高性能。...(CGI程序和FastCGI程序,可以理解成遵循CGI协议和FastCGI协议编写程序) FastCGI工作原理: FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程...如果要搭建一个高性能PHP WEB服务器,目前最佳方式是Apache/Nginx + FastCGI + PHP-FPM(+PHP-CGI)方式了。

2.7K12

Swoole-Task:简单高效异步任务处理框架

\Ctrl这个类 app\dao 数据访问层,操作数据库方法 app\helper 公共方法类 app\vendor 如果依赖composer 第三方库,在在app目录下创建composer.json...swoole扩展异步任务处理框架,更详细使用方法看源码,或者在github留issues,有好建议我会根据情况及时改进 Swoole-Task服务管理脚本功能说明 ---- 1 如果swoole.php...-p9510 -d start #启动服务 非守护进程模式 php swoole.php -h127.0.0.1 -p9510 -D start #启动服务 指定进程名称(显示进程名为 swooleServ...help 显示帮助 -d, --daemon 指定此参数,服务以守护进程模式运行,不指定读取配置文件值 -D, --nondaemon 指定此参数,以非守护进程模式运行,不指定则读取配置文件值...(--TODO) status 查看指定ip和端口服务状态,tasking_num是指当前正在运行任务 list 查看当前服务器上运行swoole-task实例, 返回结果显示服务进程 USER

98640

LAMP优化

6、另外一项缓冲技术是把不常修改 PHP 页面采用 HTML 缓冲输出。 7、不要在 Web 服务器上运行 X-Windows ,关掉没有必要运行进程。...10、以上所有的方法都是针对单机而言,如果你觉得系统还是不够快,可以采用集群,负载均衡,缓冲技术。采用 Squid 作为缓冲,配置 Squid 方法。...提供这些 服务程序是由运行在后台守护进程(daemons)来执行守护进程是生存期长一种进程。它们独立于控制终端并且周期性执行某种任务或等待处理 某些发生事件。...linux系统有很多守护进程,大多数服务器都是用守护进程实现。如Web服务 http等。同时,守护进程完成许多系统任务,比如,作业规划进程crond、打印进程lqd等。...有些书籍和资料也把守护进程称作:“服务”。关闭服务方 法请查看笔者文章:深入理解Linux守护进程

72720

带着老李折腾山寨Workerman(四)

记得后来没多久,领导让我研究一个爬虫脚本,当时为了不让脚本莫名其妙退出就天天看着电脑不关机,再后来就用Linux命令后加一个[ & ]符来跑...莫名其妙挂了几次后,我决定彻底研究一下[ 如何使程序在后台保持稳定...如果想让[ 后台 ]任务再次运行起来,需要用bg + [ 序号 ]来恢复后台任务运行,如上图中所示。 然而这种做法有可能出现情况是:如果关闭当前终端,该进程也有可能会被关闭。...所以,无论是末尾加上&符号亦或是头部加上nohup,并非靠谱或最佳方案。我曾经见过不少nohup后几天后莫名其妙进程丢失案例,比如这位... ? 所以我们需要一种正规而又稳定化进程后台方法。...上面普及铺垫完了,就可以正式步入正轨了,是时候表演真正技术了!在*NIX里,后台进程有个标准说法叫做daemon进程,标准翻译叫做守护进程。...包括我们正在山寨对象Workerman在启动后都是以守护进程方式跑在系统后台,稳稳地提供服务,那么如何利用PHP实现daemon? <?

79231

Linux - 请允许我静静地后台运行

而在 shell 脚本中,我们会发现运行 setsid 进程会一直阻塞住,直到 command 进程执行结束。...守护进程 以上介绍都是一些临时进程处理,后台运行进程最终方法是将进程变成守护进程。...守护进程 守护进程(daemon)是生存期较长一种进程,一般在系统启动时启动,系统关闭时停止,没有控制终端,也不会输出。如我们服务器、fpm 等进程就是以守护进程形式存在。...创建过程 要创建一个守护进程,步骤为: 必选项 fork 子进程,退出父进程,子进程作为孤儿进程被 init 进程收养; 使用 setsid, 打开新会话,进程成为会话组长,正式脱离终端控制; 设置信号处理...; 代码 以下是 php 创建守护进程伪代码,另外我另一篇博客 初探PHP进程 也稍微介绍了一些相关内容: $pid = pcntl_fork(); if ($pid > 0) { exit

1.7K50

LaravelLumen 使用 redis队列

这里我们可以保持其默认配置不变。 failed配置项用于配置失败队列任务存放数据库及数据表。这里我们需要按照自己数据库配置对其做相应修改。...9、运行队列进程 Laravel 自带了一个队列进程用来处理被推送到队列新任务。你可以使用 queue:work 命令运行这个队列进程。...请注意,队列进程开始运行后,会持续监听队列,直至你手动停止或关闭终端: php artisan queue:work 注:为了保持队列进程  queue:work 持续在后台运行,需要使用进程守护程序...五、配置 Supervisor 安装 Supervisor Supervisor 是 Linux 系统中常用进程守护程序。如果队列进程 queue:work 意外关闭,它会自动重启启动队列进程。...(用于接收进程管理命令) supervisorctl 客户端(用于和守护进程通信,发送管理进程指令) echo_supervisord_conf 生成初始配置文件程序。

2.3K20

Docker 基础

Docker 客户端与守护进程可以运行在同一台机器上,你也可以通过客户端连接到远程 Docker 守护进程。...按照 Docker 最佳实践要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。...有两种方法,两种方法效果完全不同: 直接 exit,这时候 bash 程序终止,容器进入到停止状态 使用组合键退出,仍然保持容器运行,我们可以随时回来到这个 bash 中来,组合键是 Ctrl-p...作为一个最佳实践,在构建一个新镜像时,我们应该尽可能减少 RUN 命令使用次数,这样可以减少镜像大小 CMD 用于设置容器启动时默认执行命令,显然,我们就是要启动 nginx 这样,这个简单镜像构建脚本就完成了...这里: 当我们执行 docker build 时候,docker 就会默认在当前目录中,查找一个叫做 Dockerfile 文件名作为构建脚本

54050

Docker入门(一)-- 基础概念与安装

由于隔离进程独立于宿主和其它隔离进程,因此也称其为容器。...Docker和传统虚拟机 容器内应用进程直接运行于宿主内核,容器内没有自己内核,与其他容器共享主机内核,而且也没有进行硬件虚拟,不占用比其他可执行文件更多内存,从而使其更轻便。...Docker客户端与Docker守护进程进行通话,该守护程序完成了构建,运行和分发Docker容器繁重工作。...Docker客户端和守护程序可以在同一系统上运行,也可以将Docker客户端连接到远程Docker守护程序。Docker客户端和守护程序在UNIX套接字或网络接口上使用REST API进行通信。 ?...容器存储层生命周期和容器一样,随容器消亡而消亡,因此任何保存在存储层信息都会随容器删除而丢失。 按照Docker最佳实践要求,容器不应该向其存储层写入任何数据,容器存储层要保持无状态化。

55530

Sentry 开发者贡献指南 - 配置 PyCharm

使用 PyCharm 进行调试 devserver 命令存在主要是为了在单独进程中生成守护进程,这意味着在默认模式下将 debugger 附加到它并不是很有用。...Web server devserver 命令有一个特殊标志,它将导致 web server 在同一进程线程中启动(而不是作为 web 守护进程)。...独立守护进程 要将 debugger 附加到除 web 之外单个守护程序,请为守护程序创建运行配置。以下属性应与您 devserver 配置相同。...PyCharm Compound 运行配置类型对于一次启动多个运行配置很有用。如果您正在调试一个或多个与开发服务器协同独立守护进程,那么设置一个可能会很方便。...如果您单独运行守护进程不工作,您可以通过调试 devserver --debug-server 并在 src/sentry/runner/commands/devserver.py 上插入断点来进行故障排除

94260

深入理解phpapc

故这个设为03.通过ini选项apc.filters缓存更少脚本apc优点:1.使用spinlocks(自旋)锁机制,能够达到最佳性能2.apc提供apc.php,用于监控和管理apc缓存。...由apc自行管理该共享内存4.调整apc.shm_size、apc.num_files_hints、apc.user_entires_hint值到最佳5.php预定义常量,可以使用apc _define...不过apc开发者说pecl hidef性能更加,抛弃define,它是低效6.apc_store,对于系统设置等PHP变量,生命周期是整个应用(从httpd守护进程到httpd守护进程关闭),使用apc...apc.file_update_protection = 2;sys; 当你在一个运行服务器上修改文件时,你应当执行原子操作。; 也就是先写进一个临时文件,然后将该文件重命名(mv)到最终名字。...id=8754; 请保持为off,否则可能导致意想不到结果。apc.max_file_size = 1m;sys; 禁止大于此尺寸文件被缓存。

86540

宝塔消息队列启动

消息队列需要进程守护,下面介绍两种方式进行队列进程守护 一、使用Supervisor配置消息队列 设置PHP命令版本 1.修改宝塔命令行PHP版本,将命令行PHP版本和站点PHP版本保持一致...宝塔软件商店搜索Supervisor并安装 添加守护进程 3.安装完成之后,点击设置-添加守护进程 4.启动用户选择WWW,运行目录选择程序根目录,输入下方命令,保存即可。...php think queue:listen --queue 5.添加完成显示如下图 注意:如果添加完成无法显示,请删除Supervisor并重启宝塔面板重新安装,如果始终不出现,请更换成堡塔应用管理器...二、使用堡塔应用管理器配置消息队列 设置PHP命令版本 1.修改宝塔命令行PHP版本,将命令行PHP版本和站点PHP版本保持一致 安装堡塔应用管理器 2.宝塔软件商店搜索堡塔应用管理器并安装...添加守护进程 3.点击设置,添加应用 应用名称使用英文,随机填写 应用环境选择站点对应php环境 启动文件选择项目根目录下面的think文件 执行目录选择项目根目录 启动参数填写queue:listen

1.1K10
领券