shell如何编写nginx服务启动程序
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章为大家展示了shell如何编写nginx服务启动程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用源码包安装的Nginx没办法使用"service
千家信息网最后更新 2025年12月02日shell如何编写nginx服务启动程序
本篇文章为大家展示了shell如何编写nginx服务启动程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
| 使用源码包安装的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正在运行
上述内容就是shell如何编写nginx服务启动程序,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
脚本
服务
正在
文件
运行
内容
配置
程序
技能
权限
状态
知识
系统
控制
检查
简明
简明扼要
办法
备份
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大功率服务器电源
服务器管理信息表
华为服务器删除阵列无法识别硬盘
全球网络安全监控网址
服务器开机不了原因
迷你世界怎么免费开服务器电脑版
贝凡互联网科技 云浮
计算机网络技术 职业定位
打印机代理服务器设置警告
大型系统平台软件开发费标准
百度数据库的优缺点
负责信息网络技术相关工作
主机如何访问虚拟机数据库
互联网科技语录
网络安全概论教程智慧树期末考试
三大网络安全系统
电脑网络安全介绍
windows远控软件开发
澳门买华为手机如何连接服务器
东方财富爬虫 数据库
武汉好未来网络技术有限公司
我国网络安全保护的方针是
杭州4年软件开发工资
可以合成视频的手机软件开发
游戏里开服务器
如何提升自己的网络安全性
工业网络安全隔离网关SAP
飞控软件和软件开发
为什么计算机里找不到数据库服务
网络安全中人的作用