分享一份nginx重启脚本
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,nginx是超级稳定的服务器,一般不会因为超载问题而需要重启,重启的目的一般都是修改配置文件后需要加载一下。最开始的时候,我是用最直接的重启方式[@more@]killall -9 nginx;/da
千家信息网最后更新 2026年10月31日分享一份nginx重启脚本nginx是超级稳定的服务器,一般不会因为超载问题而需要重启,重启的目的一般都是修改配置文件后需要加载一下。
最开始的时候,我是用最直接的重启方式
[@more@]killall -9 nginx;/data/nginx/sbin/nginx
如果机器比较慢,kill进程时一瞬间杀不完,再执行一次即可。这种重启方式不是特别安全,如果配置有误,则会重启失败,需要重新修改配置文件然后再启动,期间会消耗一点时间。不过对于目前普遍还是不怎么严格的http界而言,这点时间还不至于产生太大损失,只要不是在关键时刻搞出来就好。如果希望沿用这种重启办法,我提议还是先好好测试吧。
后来我在nginx.net上看到了一种更奇妙的重启
kill -HUP $pid($pid就是nginx master进程的进程号)
我一般这样用
kill -HUP `cat /data/nginx/logs/nginx.pid`
这种方式的好处是实现"平滑重启",在ps -aux中可以看到,nginx首先启动新进程,旧的进程仍然提供服务,在一段时间后,旧的进程服务结束就自动关闭,剩下新进程继续服务。但是这种方式也是有缺点的,如果配置文件有误,或者资源冲突,则重启失效,但nginx并没有任何的提示!这就会时常发现改动的配置文件没有生效,又比较难找到问题。
所以,最后杂和了一下问题,弄了一个nginx.sh,这个版本的nginx.sh还是没有解决kill -HUP的资源冲突的问题,但解决了配置文件的问题。资源冲突的比如80端口被占用、日志文件目录没有创建这种的,我再想想办法。
#!/bin/sh
BASE_DIR='/data/'
${BASE_DIR}nginx/sbin/nginx -t -c ${BASE_DIR}nginx/conf/nginx.conf >& ${BASE_DIR}nginx/logs/nginx.start
info=`cat ${BASE_DIR}nginx/logs/nginx.start`
if [ `echo $info | grep -c "syntax is ok" ` -eq 1 ]; then
if [ `ps aux|grep "nginx"|grep -c "master"` == 1 ]; then
kill -HUP `cat ${BASE_DIR}nginx/logs/nginx.pid`
echo "ok"
else
killall -9 nginx
sleep 1
${BASE_DIR}nginx/sbin/nginx
fi
else
echo "######## error: ########"
cat ${BASE_DIR}nginx/logs/nginx.start
fi
最开始的时候,我是用最直接的重启方式
[@more@]killall -9 nginx;/data/nginx/sbin/nginx
如果机器比较慢,kill进程时一瞬间杀不完,再执行一次即可。这种重启方式不是特别安全,如果配置有误,则会重启失败,需要重新修改配置文件然后再启动,期间会消耗一点时间。不过对于目前普遍还是不怎么严格的http界而言,这点时间还不至于产生太大损失,只要不是在关键时刻搞出来就好。如果希望沿用这种重启办法,我提议还是先好好测试吧。
后来我在nginx.net上看到了一种更奇妙的重启
kill -HUP $pid($pid就是nginx master进程的进程号)
我一般这样用
kill -HUP `cat /data/nginx/logs/nginx.pid`
这种方式的好处是实现"平滑重启",在ps -aux中可以看到,nginx首先启动新进程,旧的进程仍然提供服务,在一段时间后,旧的进程服务结束就自动关闭,剩下新进程继续服务。但是这种方式也是有缺点的,如果配置文件有误,或者资源冲突,则重启失效,但nginx并没有任何的提示!这就会时常发现改动的配置文件没有生效,又比较难找到问题。
所以,最后杂和了一下问题,弄了一个nginx.sh,这个版本的nginx.sh还是没有解决kill -HUP的资源冲突的问题,但解决了配置文件的问题。资源冲突的比如80端口被占用、日志文件目录没有创建这种的,我再想想办法。
#!/bin/sh
BASE_DIR='/data/'
${BASE_DIR}nginx/sbin/nginx -t -c ${BASE_DIR}nginx/conf/nginx.conf >& ${BASE_DIR}nginx/logs/nginx.start
info=`cat ${BASE_DIR}nginx/logs/nginx.start`
if [ `echo $info | grep -c "syntax is ok" ` -eq 1 ]; then
if [ `ps aux|grep "nginx"|grep -c "master"` == 1 ]; then
kill -HUP `cat ${BASE_DIR}nginx/logs/nginx.pid`
echo "ok"
else
killall -9 nginx
sleep 1
${BASE_DIR}nginx/sbin/nginx
fi
else
echo "######## error: ########"
cat ${BASE_DIR}nginx/logs/nginx.start
fi
进程
文件
配置
问题
方式
服务
时间
资源
还是
冲突
办法
奇妙
安全
平滑
不怎么
关键
好处
就是
损失
日志
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技园
盈实互联网科技
奇酷互联网科技
赫美联合互联网科技
深圳卡尔迅互联网科技有限公司怎么样
互联网科技股午盘股票涨跌
西藏七维空间互联网科技有限公司
央行互联网金融科技公司
欧洲十大科技互联网公司
知域互联网科技有限公司大骗子
呼和浩特新华互联网科技学院
互联网科技研发水平
世界互联网领先科技成果获奖
互联网方面的科技前沿
工业互联网科技成果转化
广州燕处互联网科技有限公司
新氧科技和美国互联网有关系吗
北京天晋互联网科技有限公司
马化腾互联网科技教学
互联网企业和网络科技有限公司
科技金融是不是互联网金融
工业互联网科技新基建
平安科技 互联网
深圳齐家互联网科技
互联网科技中介
互联网校园科技培训
科技互联网大厂
苏州五指互联网络科技有限
黑科技 体验场景 互联网大会
上海万顺科技互联网有限公司招聘