欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用systemd为php程序建立守护进程

程序员文章站 2022-06-11 16:56:40
...
前提,是centos7,或ubuntu对应版本。

以前需要 supervisord 来执行php程序,作为守护进程。
现在linux系统升级,就更简单了。

方法,假设当前目录
/var/www/testbean

php代码

进入这个目录,写echo.php
<?php

// 这个程序的功能就是不停输入日志到日志文件。
while(true) {
  usleep(500000);
  $filename = __DIR__ . '/1.log';
  file_put_contents($filename, time()."\n", FILE_APPEND  );
}


systemd配置文件

vim /etc/systemd/system/phpbean.service

[Unit]
Description=php daemon for beanstalkd
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/bin/php /var/www/testbean/echo.php

[Install]
WantedBy=multi-user.target


User字段请看情况修改。
ExecStart字段改成自己的php文件。

其余字段可以参考阮一峰《Systemd 入门教程:命令篇》
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

的确非常非常简单
编写此配置之后,

systemctl daemon-reload
让系统重新读取配置文件

然后,当你执行
systemctl start phpbean
的时候,就会发现日志文件不停增加内容。

systemctl stop phpbean
会发现日志文件停止增长

phpbean这个名字是自己随便定义的。

在事实上,php守护进程主要用来处理队列

妈妈再也不用担心我没有好用的 php 守护进程了!