nginx服务启动程序的Shell脚本怎么写
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章主要介绍"nginx服务启动程序的Shell脚本怎么写",在日常操作中,相信很多人在nginx服务启动程序的Shell脚本怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2024年11月19日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安全错误
数据库的锁怎样保障安全
软件开发的开发方案
.net上传文件到服务器
数据库质量检查
山石网络安全技术
网页数据库写入读取
信息与网络安全关系到什么
公务员考试网络技术知识点
安徽软件开发者收费标准
档案数据库的意义
软件开发需要哪些框架
服务器sbi卡
互联网科技项目招商加盟
简谱视唱软件开发
广州软件开发排行
蓝色科技风互联网ppt
网络安全指数基金
网络安全防护系统标准
数据库分离在哪
奈曼旗网络安全应急指挥中心
小城市做软件开发合适吗
杭州空格键网络技术
网易版死亡不掉落的纯生存服务器
从永恒之蓝事件漫谈网络安全
阿里云服务器 推荐码
工业软件开发中心
软件开发需要哪些框架
excel 服务器 开发
联想服务器管理界面与系统
中合汇富网络技术服务有限
数据库收缩日志的影响