使用systemd为php程序建立守护进程
程序员文章站
2022-06-11 16:56:40
...
前提,是centos7,或ubuntu对应版本。
以前需要 supervisord 来执行php程序,作为守护进程。
现在linux系统升级,就更简单了。
方法,假设当前目录
/var/www/testbean
php代码
进入这个目录,写echo.php
systemd配置文件
vim /etc/systemd/system/phpbean.service
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 守护进程了!
以前需要 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 守护进程了!