Linux 监测进程脚本
发布于:2020-9-11 8:43 作者:song100e 浏览:248 分类:PHP 这里以监测 swoole 的 socket 进程为例。
在某些情况下,如系统负载过大 swoole 无法申请到内存而挂掉、swoole 底层发生段错误、Server 占用内存过大被内核 Kill,或者被某些程序误杀。那 websocket-server 将无法提供服务,导致业务中断,公司收入出现损失。
有一个非常有效并且在 BAT 等大型公司常用的方案是 crontab 重启监控。
原理是每 1 分钟执行一次 shell 脚本,检测 swoole 的 websocket-server 进程是否存活,如果存在则跳过。如果发现主进程已经挂掉,则执行 restart 逻辑,先 kill 掉所有残留的子进程,然后重新启动 Server。
在某些情况下,如系统负载过大 swoole 无法申请到内存而挂掉、swoole 底层发生段错误、Server 占用内存过大被内核 Kill,或者被某些程序误杀。那 websocket-server 将无法提供服务,导致业务中断,公司收入出现损失。
有一个非常有效并且在 BAT 等大型公司常用的方案是 crontab 重启监控。
原理是每 1 分钟执行一次 shell 脚本,检测 swoole 的 websocket-server 进程是否存活,如果存在则跳过。如果发现主进程已经挂掉,则执行 restart 逻辑,先 kill 掉所有残留的子进程,然后重新启动 Server。
在系统的crontab中加入:
*/1 * * * * /data/script/check_socket.sh
PHP 安装 Swoole 扩展
发布于:2020-4-9 9:01 作者:song100e 浏览:342 分类:Linux以 Swoole 最新版本 4.4.17 为例:
1,下载并安装:
wget http://pecl.php.net/get/swoole-4.4.17.tgz tar zxvf swoole-4.4.17.tgz cd swoole-4.4.17/ /usr/local/php/bin/phpize ./configure make && make install
2,编辑 php.ini
vim /usr/local/php/etc/php.ini
加入 extension=swoole.so
3,重启 php-fpm
service php-fpm restart
4,使用 php --ri swoole 查看已安装版本