nginx启动脚本编写

思路:

1、判断nginx进程是否存在ps -ef|grep nginx |egrep -v "grep|nginxd.sh"

2、case 启动|关闭|重启|重新加载

缺陷:nginx分两个不同的进程,分别是master管理进程和运行进程,如果某个进程出现问题的话这个脚本就无效,需要对pid进行流程控制。此脚本没有涉及kill nginx的ID

[[email protected] ~]# cat nginxd.sh

#!/bin/bash

##

#nginx服务启动脚本

. /etc/init.d/functions

nginx_dir=/mnt/tengine/tengine-2.1.2/sbin/

[ $# -ne 1 ] && {

echo "USAGE:$0 start|stop|restart|reload"

exit 9

}

testnginx(){

ps -ef|grep nginx |egrep -v "grep|nginxd.sh" &>/dev/null

result=$?

if [ $result -eq 0 ];then

return 1

else

return 0

fi

}

casefun(){

sum1=$1

case "$sum1" in

"start")

testnginx

[ $? -eq 1 ] && {

action "startnginx" /bin/false

exit 4

}

testnginx

[ $? -eq 0 ] && {

$nginx_dir/nginx

testnginx

[ $? -eq 1 ] && {

action "startnginx" /bin/true

}

}

;;

"stop")

testnginx

[ $? -eq 0 ] && {

acton "stopnginx" /bin/false

exit 6

}

testnginx

[ $? -eq 1 ] && {

$nginx_dir/nginx -s stop

testnginx

[ $? -eq 0 ] && {

action "stopnginx" /bin/true

}

}

;;

"restart")

testnginx

[ $? -eq 0 ] && {

action "stopnginx" /bin/false

}

testnginx

[ $? -eq 1 ] && {

$nginx_dir/nginx -s stop

testnginx

[ $? -eq 0 ] && {

action "restartnginx" /bin/true

}

}

$nginx_dir/nginx

testnginx

[ $? -eq 1 ] && {

action "startnginx" /bin/true

} || {

action "startnginx" /bin/false

}

;;

"reload")

testnginx

[ $? -eq 0 ] && {

action "reloadnginx" /bin/false

exit 7

}

[ $? -eq 1 ] && {

$nginx_dir/nginx -s reload

}

;;

*)

echo "USAGE:$0 start|stop|restart|reload"

exit 6

esac

}

casefun $*

时间: 2024-10-05 05:36:16

nginx启动脚本编写的相关文章

nginx启动脚本编写及设置开机自启动

环境:Centos 6.8 如果机器是Centos 7的,此脚本和设置开机自启动方法不适用. 首先确保nginx配置文件中:有pid目录 pid        logs/nginx.pid; 1.1 编写nginx启动脚本 [[email protected] ~]# cd /server/scripts [[email protected] scripts]# vim nginx.sh  #!/bin/bash [ -f /etc/init.d/functions ] && . /etc

Nginx启动脚本大家来找茬

今天讲到shell编程,我给大家讲解手工开发Nginx启动脚本时,写的脚本,调试发现有问题, 挺有意思的一个问题点,有2个地方有影响启动和停止的问题,有兴趣的可以研究下, 一周后公布结果! [[email protected] 03]# cat nginxd-good  #!/bin/sh RETVAL=0 path="/application/nginx" . /etc/init.d/functions start(){ if [ ! -f "$path/logs/ngin

简单的nginx启动脚本

初学时写的一个简单nginx启动脚本,使用定义函数和传参的方法.(生产环境中是不能用pkill来杀服务的,要使用-s reload来平滑重启) [[email protected]]# cat start_nginx04.sh #!/bin/sh ./etc/init.d/functions start_nginx=/nginx/sbin/nginx USAGE(){ echo "USAGE $0{start|stop|restart}" exit 1 } if [ $# -ne 1

centos 7 nginx启动脚本

centos7使用systemd代替之前的systemv的启动脚本,可以说更简单.不再需要编写一长段脚本. 复制以下内容到/usr/lib/systemd/system/nginx.service [Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network.target remote-fs.target nss-lookup.target

LNMP之 nginx 启动脚本和配置文件

因为 nginx 启动不方便,所以我们需要自已手动来编译一个nginx 的启动脚本 [[email protected] ~]# vim /etc/init.d/nginx  #加入以下内容 #!/bin/bash# chkconfig: - 30 21# description: http service.# Source Function Library. /etc/init.d/functions# Nginx Settings NGINX_SBIN="/usr/local/nginx/s

LNMP搭建4:Nginx启动脚本和配置文件

Nginx没有像apachetl那样的启动脚本,我们需要手动做一个 [[email protected] html]# vim /etc/init.d/nginx 内容如下:http://www.apelearn.com/study_v2/chapter18.html #!/bin/bash # chkconfig: - 30 21 # description: http service. # Source Function Library . /etc/init.d/functions # N

解决Nginx启动脚本在redhat上不兼容问题

我们在网上看到的Nginx的启动脚本通常是/etc/rc.d/init.d/nginx这个脚本,其内容是: #!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.1.3.0 version. # chkconfig: - 85 15 # description: Nginx is a high-performance web and proxy server. #              It has a 

LNMP的Nginx启动脚本和配置文件

配置LNMP完成安装,并把PHP也解析完成,但是Nginx启动使用的是一个可执行文件:/usr/local/nginx/sbin/nginx 来启动,非常不方便,要给Nginx写一个启动脚本,同Apache,虽然Apache的启动脚本没有放到/etc/init.d目录下,但Apache有个非常方便的启动.重启.停止脚本,即:"apachectl",而Nginx没有这样的工具, 我们需要手动制作一个启动脚本,如下: [[email protected] ~]# vim /etc/init

LinuxserverJboss执行环境搭建步骤和开机自己主动启动脚本编写执行

Jboss执行环境:Linux+Jdk+Jboss+jsp系统 Jboss软件说明:相似于Tomcat.就是一个跑Jsp系统的环境,他的网站路径跟Tomcat相似,Tomcat存放网站文件到webapps文件夹下,而Jboss存放在server/default/deploy文件夹下. 本次开发环境和測试过程例如以下: Linu操作系统:CentOS 64-bit JBoss软件下载地址http://sourceforge.net/projects/jboss/files/JBoss/JBoss-