nginx服务启动程序的Shell脚本怎么写
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/nginxchmod+x/etc/init.d/nginx
编写脚本内容
#!/bin/bash#chkconfig:-8515#description:Nginxservercontrolscript#processname:nginx#configfile:/usr/local/nginx/conf/nginx.conf#pidfile:/usr/local/nginx/logs/nginx.pid##eastmoneypublictools#version:v1.0.0#createbyXuHoo,2016-9-14##sourcefunctionlibrary./etc/rc.d/init.d/functionsNGINX_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"#checkcurrentuser["$USER"!="root"]&&exit1start(){statusif[[$?-eq0]];thenecho$"Nginx(PID$(cat$NGINX_PID_FILE))alreadystarted."return1fiecho-n$"Starting$NGINX_NAME:"daemon$NGINX_PROG-c$NGINX_CONF_FILEretval=$?echo[$retval-eq0]&&touch$NGINX_LOCK_FILEreturn$retval}stop(){statusif[[$?-eq1]];thenecho"Nginxserveralreadystopped."return1fiecho-n$"Stoping$NGINX_NAME:"killproc$NGINX_PROGretval=$?echo[$retval-eq0]&&rm-f$NGINX_LOCK_FILEreturn$retval}restart(){stopsleep1startretval=$?return$retval}reload(){echo-n$"Reloading$NGINX_NAME:"killproc$NGINX_PROG-HUPretval=$?echoreturn$retval}status(){netstat-anpt|grep"/nginx"|awk'{print$6}'&>/dev/nullif[[$?-eq0]];thenif[[-f$NGINX_LOCK_FILE]];thenreturn0elsereturn1fifireturn1}_status(){statusif[[$?-eq0]];thenstate=`netstat-anpt|grep"/nginx"|awk'{print$6}'`echo$"Nginxserverstatusis:$state"elseecho"Nginxserverisnotrunning"fi}test(){$NGINX_PROG-t-c$NGINX_CONF_FILEretval=$?return$retval}case"$1"instart)start;;stop)stop;;reload)reload;;restart)restart;;status)_status;;test)test;;*)echo"Usage:{start|stop|reload|restart|status|test}"exit1esac
将脚本添加到系统服务并设置开机启动
chkconfig--addnginxchkconfig--level3nginxon
脚本二
[root@localhost~]#cd/usr/local/nginx/conf/[root@localhostconf]#lsfastcgi.conffastcgi_paramskoi-utfmime.typesnginx.confscgi_paramsuwsgi_paramswin-utffastcgi.conf.defaultfastcgi_params.defaultkoi-winmime.types.defaultnginx.conf.defaultscgi_params.defaultuwsgi_params.default
备份主配置文件
[root@localhostconf]#cpnginx.confnginx.conf.origin[root@localhostconf]#vimnginx.conf去除#pidlogs/nginx.pid;前面#号[root@localhostconf]#netstat-anpt|grep80tcp000.0.0.0:800.0.0.0:*LISTEN19108/nginx[root@localhostconf]#kill-319108[root@localhostconf]#netstat-anpt|grep80[root@localhostconf]#nginx[root@localhostconf]#netstat-anpt|grep80tcp000.0.0.0:800.0.0.0:*LISTEN19864/nginx[root@localhostconf]#cd../logs/[root@localhostlogs]#lsaccess.logerror.lognginx.pid[root@localhostlogs]#catnginx.pid19864
编辑写服务脚本
[root@localhost~]#vim/etc/init.d/nginx可以使用的选项有:start启动stop停止reload重载restart重启status状态test检查配置文件#!/bin/bash#chkconfig:23459920#description:NginxServerControlScriptsshellPROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case"$1"instart)if[-f$PIDF];thenecho"Nginx正在运行…"else$PROGfi;;stop)if[-f$PIDF];thenkill-3$(cat$PIDF)rm-f$PIDFelseecho"Nginx正在停止…"fi;;restart)$0stop$0start;;reload)if[-f$PIDF];thenkill-1$(cat$PIDF)elseecho"Nginx正在停止…重新加载"fi;;status)if[-f$PIDF];thenecho"Nginx正在运行"elseecho"Nginx停止"fi;;*)echo"Usage:$0(start|stop|restart|reload|status)"exit1esacexit0
脚本文件并添加执行权限
[root@localhost~]#chmod+x/etc/init.d/nginx将脚本添加到系统服务并设置开机启动[root@localhost~]#chkconfig--addnginx添加为服务启动项[root@localhost~]#chkconfig--listnginxnginx0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭[root@localhost~]#chkconfig--level3nginxon测试脚本是否能够执行[root@localhost~]#servicenginxstartNginx正在运行…[root@localhost~]#servicenginxrestart[root@localhost~]#servicenginxstop[root@localhost~]#servicenginxstopNginx正在停止…[root@localhost~]#servicenginxstart[root@localhost~]#servicenginxstatusNginx正在运行
到此,关于“nginx服务启动程序的Shell脚本怎么写”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!
推荐阅读
-
浅谈php一句话木马工作原理
-
PHP中9个非常非常有用的函数
-
Shell编程基础(五)Shell数组与Subshell
-
linux shell 解析命令行参数及while getopts用法小结
目录linuxshell解析命令行参数|getpotsgetpotslinuxshell解析命令行参数|getpotsd...
-
CentOS环境中如何部署nginx、php和虚拟主机配置
CentOS环境中如何部署nginx、php和虚拟主机配置今天小编...
-
怎么使用docker安装nginx提供的web服务
-
Python怎么实时获取任务请求对应的Nginx日志
Python怎么实时获取任务请求对应的Nginx日志这篇文章主要讲...
-
docker怎么搭建nacos+nginx+mysql+redis+springboot项目
-
Nginx的location功能怎么配置
Nginx的location功能怎么配置本篇内容介绍了“Nginx...
-
Nginx安装后常用功能如何配置
Nginx安装后常用功能如何配置这篇文章主要介绍“Nginx安装后...