1. nginx自动检测重启py脚本¶
1. 脚本内容¶
vim nginx.py
#!/usr/bin/python
import os, sys, time
while True:
time.sleep(4)
try:
#ret = os.popen('ps -C nginx -o pid,cmd').readlines()
ret = os.popen('netstat -tunlp|grep nginx').readlines()
print(len(ret))
if len(ret) < 2:
print("nginx 进程异常退出, 4 秒后重新启动" )
time.sleep(3)
os.system("systemctl start nginx")
except:
print("Error",sys.exc_info()[1])
# 最后一行这个sys.exc_info()[1]是打印错误信息吗?不太了解!!!应该可以去掉
2. 测试¶
python nginx.py
root@4c16g:/service/python# python nginx.py
0
nginx 进程异常退出, 4 秒后重新启动
2
2
3. 手动关闭nginx¶
# 另起一个窗口,关闭nginx服务
systemctl stop nginx
1. 窗口1查看¶
# 发现已经检测到并重新启动nginx服务!!!
2
2
2
0
nginx 进程异常退出, 4 秒后重新启动
2
4. 拓展¶
#1. 可以将脚本放入后台运行,取消print输出即可
nohup python nginx.py &
ps -ef|grep nginx.py
#2. 可以在检测到服务宕机后,发送邮件或者企业微信消息!
# 可以在启动服务失败后,发送邮件或者企业微信消息!
#3. 可以改写成shell脚本啊,自动检测服务状态并自启!!!许多服务都可以改写!
#4. 可以使用此模板监控其他服务,比如mysql!
1. 监控mysql服务¶
#!/usr/bin/env Python
import os, sys, time
while True:
time.sleep(4)
try:
ret = os.popen('netstat -tunlp|grep mysqld').readlines()
print(len(ret))
if len(ret) < 1:
print("mysqld 进程异常退出, 4 秒后重新启动" )
time.sleep(3)
os.system("systemctl start mysqld")
except:
print("mysqld服务启动失败!Error")
最后更新:
2022-02-18 11:07:38