nginx服务启动程序的Shell脚本怎么写
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"nginx服务启动程序的Shell脚本怎么写",在日常操作中,相信很多人在nginx服务启动程序的Shell脚本怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2026年11月02日nginx服务启动程序的Shell脚本怎么写
这篇文章主要介绍"nginx服务启动程序的Shell脚本怎么写",在日常操作中,相信很多人在nginx服务启动程序的Shell脚本怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"nginx服务启动程序的Shell脚本怎么写"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的服务控制脚本。
选项有:
start 启动 stop 停止 reload 重载 restart 重启 status 状态 test 检查配置文件
脚本一
创建脚本文件并添加执行权限
touch /etc/init.d/nginx chmod +x /etc/init.d/nginx
编写脚本内容
#!/bin/bash # chkconfig: - 85 15 # description: Nginx server control script # processname: nginx # config file: /usr/local/nginx/conf/nginx.conf # pid file: /usr/local/nginx/logs/nginx.pid # # eastmoney public tools # version: v1.0.0 # create by XuHoo, 2016-9-14 # # source function library . /etc/rc.d/init.d/functions NGINX_NAME="nginx" NGINX_PROG="/usr/local/sbin/nginx" NGINX_PID_FILE="/usr/local/nginx/logs/nginx.pid" NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" NGINX_LOCK_FILE="/var/lock/subsys/nginx.lock" # check current user [ "$USER" != "root" ] && exit 1 start() { status if [[ $? -eq 0 ]]; then echo $"Nginx (PID $(cat $NGINX_PID_FILE)) already started." return 1 fi echo -n $"Starting $NGINX_NAME: " daemon $NGINX_PROG -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $NGINX_LOCK_FILE return $retval } stop() { status if [[ $? -eq 1 ]]; then echo "Nginx server already stopped." return 1 fi echo -n $"Stoping $NGINX_NAME: " killproc $NGINX_PROG retval=$? echo [ $retval -eq 0 ] && rm -f $NGINX_LOCK_FILE return $retval } restart() { stop sleep 1 start retval=$? return $retval } reload() { echo -n $"Reloading $NGINX_NAME: " killproc $NGINX_PROG -HUP retval=$? echo return $retval } status() { netstat -anpt | grep "/nginx" | awk '{print $6}' &> /dev/null if [[ $? -eq 0 ]]; then if [[ -f $NGINX_LOCK_FILE ]]; then return 0 else return 1 fi fi return 1 } _status() { status if [[ $? -eq 0 ]]; then state=`netstat -anpt | grep "/nginx" | awk '{ print $6 }'` echo $"Nginx server status is: $state" else echo "Nginx server is not running" fi } test() { $NGINX_PROG -t -c $NGINX_CONF_FILE retval=$? return $retval } case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; status) _status ;; test) test ;; *) echo "Usage: { start | stop | reload | restart | status | test }" exit 1 esac将脚本添加到系统服务并设置开机启动
chkconfig --add nginx chkconfig --level 3 nginx on
脚本二
[root@localhost ~]# cd /usr/local/nginx/conf/ [root@localhost conf]# ls fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default
备份主配置文件
[root@localhost conf]# cp nginx.conf nginx.conf.origin [root@localhost conf]# vim nginx.conf 去除#pid logs/nginx.pid;前面#号 [root@localhost conf]# netstat -anpt | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19108/nginx [root@localhost conf]# kill -3 19108 [root@localhost conf]# netstat -anpt | grep 80 [root@localhost conf]# nginx [root@localhost conf]# netstat -anpt | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19864/nginx [root@localhost conf]# cd ../logs/ [root@localhost logs]# ls access.log error.log nginx.pid [root@localhost logs]# cat nginx.pid 19864
编辑写服务脚本
[root@localhost ~]# vim /etc/init.d/nginx 可以使用的选项有: start 启动 stop 停止 reload 重载 restart 重启 status 状态 test 检查配置文件 #!/bin/bash #chkconfig: 2345 99 20 #description:Nginx Server Control Scripts shell PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" in start) if [ -f $PIDF ]; then echo "Nginx正在运行…" else $PROG fi ;; stop) if [ -f $PIDF ]; then kill -3 $(cat $PIDF) rm -f $PIDF else echo "Nginx正在停止…" fi ;; restart) $0 stop $0 start ;; reload) if [ -f $PIDF ]; then kill -1 $(cat $PIDF) else echo "Nginx正在停止…重新加载" fi ;; status) if [ -f $PIDF ]; then echo "Nginx正在运行" else echo "Nginx停止" fi ;; *) echo "Usage: $0 (start|stop|restart|reload|status)" exit 1 esac exit 0
脚本文件并添加执行权限
[root@localhost ~]# chmod +x /etc/init.d/nginx 将脚本添加到系统服务并设置开机启动 [root@localhost ~]# chkconfig --add nginx 添加为服务启动项 [root@localhost ~]# chkconfig --list nginx nginx 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 [root@localhost ~]# chkconfig --level 3 nginx on 测试脚本是否能够执行 [root@localhost ~]# service nginx start Nginx正在运行… [root@localhost ~]# service nginx restart [root@localhost ~]# service nginx stop [root@localhost ~]# service nginx stop Nginx正在停止… [root@localhost ~]# service nginx start [root@localhost ~]# service nginx status Nginx正在运行
到此,关于"nginx服务启动程序的Shell脚本怎么写"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
脚本
服务
正在
文件
程序
学习
运行
配置
更多
权限
状态
系统
帮助
控制
检查
实用
接下来
内容
办法
备份
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
互联网科技垄断
科技服务与互联网
华中科技大学互联网
深圳齐家互联网科技
腾讯科技 互联网女皇
上海电发互联网科技有限公司
央行互联网金融科技公司
互联网科技产业特征
广西互联网科技孵化中心
众安科技工业互联网合作
怎样加入科技互联网
深圳互联网科技的发展
上海乐五互联网科技有限公司
求路客互联网科技电话
悟空问答互联网科技
科技互联网公司两年变化
第三届互联网大会安防黑科技
现代互联网科技公司
互联网金融金融科技
哈尔滨大商圈互联网科技有限公司
互联网科技股票
宜安科技 互联网金融
智慧科技互联网
互联网企业和科技型企业
互联网科技教育视频
互联网还是高科技吗
互联网时代的科技公司
21世纪互联网科技成就
科技互联网专业工作会议发言稿