`
xieye
  • 浏览: 822615 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

阅读更多
前提,是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 守护进程了!
0
0
分享到:
评论

相关推荐

    linux下的守护进程

    2. **改变工作目录**:守护进程会将其工作目录更改为根目录 `/`,以避免锁定特定目录。 3. **关闭标准输入、输出和错误流**:守护进程关闭标准输入、输出和错误流,避免与终端相关联,通常重定向到 `/dev/null`。 ...

    daemonizable-command:Symfony的可守护进程(无尽运行)命令

    这些无休止的运行命令非常容易用Upstart或systemd之类的东西来守护。我为什么需要这个? 因为您想创建长期运行PHP / Symfony进程! 例如,发送带有大型附件的邮件,处理(延迟)付款或生成大型PDF报告。 他们查询...

    用php守护另一个php进程的例子

    这就是所谓的"PHP守护进程"。 首先,我们来看b.php脚本。b.php的主要任务是持续运行并保持其进程ID的更新。它接收一个命令行参数$id$,这个参数通常是在启动b.php时由a.php传递的。b.php使用`getmypid()`函数获取...

    php-fpm.conf配置文件中文说明详解及重要参数说明

    10. daemonize:是否以守护进程方式运行php-fpm,默认为yes,no可用于调试。 11. rlimit_files:设置master进程可以打开的文件数。 12. rlimit_core:设置master进程的核心rlimit限制值。 13. events.mechanism:...

    图片定时抓取代码

    - 为了让程序在无人值守的情况下持续运行,可能需要设计为守护进程(daemon)或者使用如`nohup`、`screen`或`systemd`服务来保持程序的后台运行状态。 6. **错误处理与日志记录**: - 抓取过程中可能会遇到网络...

    vbird-linux-basic

    7. 系统启动和服务管理:了解系统启动过程,包括BIOS/UEFI启动、GRUB引导加载器,以及服务和守护进程的概念,如何使用systemd、sysvinit等系统和服务管理工具。 8. 网络配置与故障排除:网络配置是服务器管理的关键...

    linux课件附习题讲解及试题

    2. 守护进程:理解什么是守护进程(daemon),如何通过`nohup`或`&`在后台运行程序。 七、Linux习题与模拟试题 通过习题和模拟试题,我们可以巩固所学知识,检查自己的理解程度,并提高实际操作能力。题目可能涵盖...

    在PHP中运行Linux命令并启动SSH服务的例子

    `ssh`命令用于连接到远程主机,`sshd`服务则是接受SSH连接的守护进程。通过`expect`命令,可以自动化SSH登录过程,避免手动输入密码。同时,了解如何在Linux下安装SSH,使用`scp`命令进行文件传输,以及如何远程执行...

    Nagios监控主机安装.pdf

    7. 安装软件:通过yum命令安装Nagios所需的软件包,这些软件包括PHP、HTTPD、GCC、Glib、C库、公共守护进程、开发库和Perl等。 二、Nagios配置: 1. Nagios服务配置文件通常位于/etc/nagios/nagios.cfg,包括了对...

    memcached 1.4.20 linux 安装包

    -d # 以守护进程方式运行 ``` 4. **启动与管理** 通过以下命令启动 Memcached 服务: ```bash sudo /usr/local/bin/memcached -c /etc/memcached.conf ``` 若要使 Memcached 在系统启动时自动运行,可以...

    linux入门pdf

    4. **服务管理**:Linux中的服务(或称守护进程)是后台运行的程序,负责提供持续的服务,如网络服务。Systemd是现代Linux系统广泛采用的服务管理系统,用于启动、停止和控制服务。了解如何使用systemctl命令来管理...

    cronusagent:代理会说 RESTful 并快速执行 PaaS 任务

    系统管理守护进程 systemd 或 upstart # Install agent in /var/cronus with default ssl cert and no password wget -qO- ' http://cronuspaas.github.io/downloads/install_agent ' | sudo dev=true bash # ...

    Linux使用Crontab定时访问某个路由地址的方法

    `cron`是一个服务,`crond`是运行在后台的守护进程,而`crontab`则用于设置和管理用户自定义的定时任务列表。在Linux中,每个用户都有自己的crontab文件,存储在 `/var/spool/cron/用户名` 目录下。 要创建一个新的...

Global site tag (gtag.js) - Google Analytics