日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php使用supervisor管理进程脚本

發(fā)布時間:2024/4/17 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php使用supervisor管理进程脚本 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

supervisor是用python開發(fā)的一個在linux系統(tǒng)下的進程管理工具,可以方便的監(jiān)聽,啟動,停止一個或多個進程。當一個進程被意外殺死后,supervisor監(jiān)聽到后,會自動重新拉起進程。

一、supervisor的安裝

1、通過easy_install安裝

yum -y install python-setuptools easy_install supervisor

2、通過yum安裝

yum -y install supervisor

3、通過pip安裝

yum -y install epel-release yum -y install python-pip pip install supervisor

安裝好后,會生成三個執(zhí)行命令,echo_supervisord_conf,supervisorctl,supervisord。

?

二、supervisor的配置文件

supervisor的默認配置文件在 /etc/supervisord.conf 下,如果沒有可以通過如下命令生成

echo_supervisord_conf > /etc/supervisord.conf

常用的配置項如下:

[unix_http_server] file=/tmp/supervisor.sock ; unix socket文件,supervisorctl會使用 ;chmod=0700 ; socket文件權(quán)限 ;chown=nobody:nogroup ; socket文件所屬用戶和用戶組[inet_http_server] ; web管理界面 port=127.0.0.1:9001 ; 管理界面的IP和端口 username=admin ; 登陸管理界面的用戶名 password=123456 ; 登陸管理界面的密碼[supervisord] logfile=/tmp/supervisord.log ; 日志文件 logfile_maxbytes=50MB ; 日志文件大小,為0表示不限制 logfile_backups=10 ; 日志文件備份數(shù)量,為0表示不備份 loglevel=info ; 日志級別,也可設(shè)置為 debug,warn,trace pidfile=/tmp/supervisord.pid ; PID文件路徑 nodaemon=false ; 是否前臺啟動,為false表示守護進程方式 minfds=1024 ; 打開文件描述符的最小值 minprocs=200 ; 創(chuàng)建進程數(shù)的最小值[supervisorctl] serverurl=unix:///tmp/supervisor.sock ; 通過 unix sokcet 連接supervisord ;serverurl=http://127.0.0.1:9001 ; 通過http方式連接supervisord[include] files = /etc/supervisord/confs/*.conf ; 包含其他配置文件,可以是.conf或.ini

我們需要把 [include] 前面的注釋打開,并配置 files 的路徑。

創(chuàng)建 files 中配置的目錄。

mkdir -p /etc/supervisord/confs/

  

三、配置一個php腳本進程

我們在?/etc/supervisord/confs/ 目錄下創(chuàng)建一個 demo.conf 文件。

;demo表示程序名稱 [program:demo] ;需要執(zhí)行的命令 command=php demo.php ;命令執(zhí)行的目錄 directory=/data/wwwroot ;環(huán)境變量 environment=PATH="/data/nmp/php/bin/" ;哪個用戶運行 user=root ;是否自啟動 autostart=true ;是否自動重啟 autorestart=true ;自動重啟時間間隔,單位秒 startsecs=3 ;錯誤日志文件 stderr_logfile=/tmp/demo.err.log ;輸出日志文件 stdout_logfile=/tmp/demo.out.log

demo.php的代碼如下:

<?php$i = 0; while(true) {$i++;echo $i, PHP_EOL;sleep(1); }

  

四、管理進程。

管理進程,需要我們啟動?supervisor 服務,這里我們配置 systemctl,開機自動啟動?supervisor。

創(chuàng)建?/usr/lib/systemd/system/supervisord.service 文件,配置如下:

[Unit] Description=Supervisor daemon[Service] Type=forking ExecStart=/usr/bin/supervisord ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s[Install] WantedBy=multi-user.target

啟用配置

systemctl enable supervisord.service

啟動?supervisord

systemctl start supervisord.service

成功后,就可以通過?supervisorctl 交互命令管理進程腳本了。

讀取有更新的配置文件

supervisorctl reread

更新配置文件修改過的程序

supervisorctl update

如果修改過?/etc/supervisord.conf 請使用如下命令

supervisorctl reload

啟動,停止,重啟,程序。

supervisorctl start 程序名 supervisorctl stop 程序名 supervisorctl restart 程序名

  

五、supervisor圖形化管理界面

需要開啟?/etc/supervisord.conf 文件中的 [inet_http_server]

[inet_http_server] port=0.0.0.0:9001 username=admin password=123456

設(shè)置完后,要開放 9001 端口,并重啟?supervisor

firewall-cmd --zone=public --add-port=9001/tcp --permanent firewall-cmd --reload

重啟?supervisor

supervisorctl reload

  

轉(zhuǎn)載于:https://www.cnblogs.com/jkko123/p/10846038.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的php使用supervisor管理进程脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。