In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-02-25 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/01 Report--
这篇文章主要介绍"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脚本怎么写"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.