进程守护

建议使用 systemd 管理我们的服务进程。

使用方法

  1. 请确保cabal.php配置文件中的swoole.daemonize配置为关闭状态(0false)!
    1. 'swoole' => [
    2. // ...
    3. 'daemonize' => 0,
    4. // ...
    5. ],
  2. /etc/systemd/system/目录中,创建一个 cabal.service 文件,添加下列内容(注意修改php和项目路径):

    1. [Unit]
    2. Description=Cabal Server
    3. After=network.target
    4. After=syslog.target
    5. [Service]
    6. Type=simple
    7. LimitNOFILE=65535
    8. ExecStart=/usr/local/php/bin/php /data/srv/demo/bin/cabal.php -e prod
    9. ExecReload=/bin/kill -USR1 $MAINPID
    10. Restart=always
    11. [Install]
    12. WantedBy=multi-user.target graphical.target

    可以在 Server下增加两个配置下指定用户(User=xxx)和用户组(Group=myuser)哦!

  3. 重新加载 systemd

    1. sudo systemctl --system daemon-reload
  4. 服务管理

    1. #启动服务
    2. sudo systemctl start cabal
    1. #reload服务
    2. sudo systemctl reload cabal
    1. #关闭服务
    2. sudo systemctl stop cabal
    1. #查看服务状态
    2. sudo systemctl status cabal
  5. 查看服务日志

    1. # 从头开始看所有日志
    2. journalctl -u cabal
    3. # 最后100条
    4. journalctl -u cabal -n 100
    5. # 最后100条且跟踪日志(有新日志会立刻输出到屏幕,类似 tail -f / tailf)
    6. journalctl -u cabal -n 100 -f

    journalctl 还有很多其他查询日志的方法,请自行查阅相关文档资料。

至此你的服务就可以稳定的运行啦!