千家信息网

分享一份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
进程 文件 配置 问题 方式 服务 时间 资源 还是 冲突 办法 奇妙 安全 平滑 不怎么 关键 好处 就是 损失 日志 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 盈实互联网科技 奇酷互联网科技 赫美联合互联网科技 深圳卡尔迅互联网科技有限公司怎么样 互联网科技股午盘股票涨跌 西藏七维空间互联网科技有限公司 央行互联网金融科技公司 欧洲十大科技互联网公司 知域互联网科技有限公司大骗子 呼和浩特新华互联网科技学院 互联网科技研发水平 世界互联网领先科技成果获奖 互联网方面的科技前沿 工业互联网科技成果转化 广州燕处互联网科技有限公司 新氧科技和美国互联网有关系吗 北京天晋互联网科技有限公司 马化腾互联网科技教学 互联网企业和网络科技有限公司 科技金融是不是互联网金融 工业互联网科技新基建 平安科技 互联网 深圳齐家互联网科技 互联网科技中介 互联网校园科技培训 科技互联网大厂 苏州五指互联网络科技有限 黑科技 体验场景 互联网大会 上海万顺科技互联网有限公司招聘
0