Swoole 后台守护进程运行 服务器平滑重启
1.新建service.php
#通过swoole_set_process_name函数添加进程名称
#通过设置daemonize => true 程序将转入后台作为守护进程运行。长时间运行的服务器端程序必须启用此项。
如果不启用守护进程,当 ssh 终端退出后,程序将被终止运行。
<?php //创建Server对象,监听 127.0.0.1:9501 端口 $server = new Swoole\Server('127.0.0.1', 9502); $server->set([ 'daemonize' => true ]); /** * @param $server * 添加进程名称 */ swoole_set_process_name("live_master"); //监听连接进入事件 $server->on('Connect', function ($server, $fd) { echo "Client: Connect.\n"; }); //监听数据接收事件 $server->on('Receive', function ($server, $fd, $reactor_id, $data) { $server->send($fd, "Server: {$data}"); }); //监听连接关闭事件 $server->on('Close', function ($server, $fd) { echo "Client: Close.\n"; }); //启动服务器 $server->start();
2.创建reload.sh 执行脚本
echo "loading..." pid=$(pidof live_master) #pid= `pidof live_master` echo $pid kill -usr1 $pid echo "success loading..."