自己写了个nginx启动脚本,shell

思路:nginx启动后会有nginx.pid文件在指定位置下,通过判断该文件是否存在。决定nginx是否已经启动。

#!/bin/bash

#this is my first try to test write a shell to control nginx daemon

#History 2015-08-04 masterliu

PATH=/usr/bin/:/usr/local/bin:/bin:/usr/sbin:/usr/local/sbin:/sbin:~/bin

export PATH

#this file could be configured in nginx.conf

PIDfile=/usr/local/nginx/logs/nginx.pid

Nginxd=/usr/local/nginx/sbin/nginx

function start(){

if [ -e $PIDfile ];then

echo -e "nginx has already started\t\t[OK]" && exit 0

fi

$Nginxd &> /dev/null

if [ $? = 0 ];then

echo -e "nginx has started\t\t[OK]"

else

echo -e " nginx start failed\t\t[FAILED]"

fi

}

function stop(){

if [ ! -e $PIDfile ];then

echo -e "nginx has already stopped\t\t[OK]" && exit 0

fi

#killall nginx

$Nginxd -s stop &> /dev/null

sleep 2

if [ ! -e $PIDfile ];then

echo -e "nginx has stopped\t\t[OK]";

fi

}

function reload(){

if [ ! -e $PIDfile ];then

echo -e "nginx hasn‘t start\t\t[OK]" && exit 0

fi

$Nginxd -s reload && echo -e "nginx has reload\t\t[OK]" && exit 0

}

function status(){

if [ ! -e $PIDfile ];then

echo -e " nginx hasn‘t run\t\t[OK]"

else

echo -e " nginx is running\t\t[OK]"

fi

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

stop;

start;

;;

status)

status

;;

reload)

reload

;;

*)

echo -e "\t start|stop|restart|status|reload\t"

;;

esac

时间: 2024-10-10 10:05:53

自己写了个nginx启动脚本,shell的相关文章

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

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

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

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

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

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

解决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 启动脚本和配置文件

因为 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

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服务启动脚本 . /et