案例十:shell编写nginx服务启动程序

  • 日期:08-12
  • 点击:(1114)


厚技术说我想昨天分享

安装了源包的Nginx不能使用'service nginx start'或'/etc/init.d/nginx start'进行操作和控制,所以我编写了以下服务控制脚本,它有以下选项:

开始

停止停止

重新加载重载

重启重启

状态状态

测试检查配置文件

脚本一

创建脚本文件并添加执行权限

触摸/etc/init.d/nginx

Chmod + x /etc/init.d/nginx

编写脚本内容

#!/斌/庆典

#chkconfig: - 85 15

#description: Nginx服务器控制脚本

#processname: nginx

#config文件: /usr/local/nginx/conf/nginx.conf

#pid文件: /usr/local/nginx/logs/nginx.pid

#eastmoney公共工具

#version: v1.0.0

#创作由XuHoo,2016-9-14

#源函数库

。 /etc/rc.d/init.d/functions

NGINX_NAME='nginx的'

NGINX_PROG='的/usr/local/sbin中/nginx的'

NGINX_PID_FILE='的/usr /本地/nginx的/日志/nginx.pid'

NGINX_CONF_FILE='的/usr /本地/nginx的/CONF/nginx.conf'

NGINX_LOCK_FILE='的/var /锁定/SUBSYS/nginx.lock'

#check current current

['$ USER'!='root']&&退出1

开始{

状态

如果[[$? -eq 0]];然后

Echo $'Nginx(PID $(cat $ NGINX_PID_FILE))已经开始。'

返回1

网络

Echo -n $'启动$ NGINX_NAME:'

守护进程$ NGINX_PROG -c $ NGINX_CONF_FILE

RETVAL=$?

回声

[$ retval -eq 0]&&触摸$ NGINX_LOCK_FILE

返回$ retval

}

停止{

状态

如果[[$? -eq 1]];然后

Echo'Nginx服务器已停止。'

返回1

网络

Echo -n $'Stoping $ NGINX_NAME:'

Killproc $ NGINX_PROG

RETVAL=$?

回声

[$ retval -eq 0]&& rm -f $ NGINX_LOCK_FILE

返回$ retval

}

重启{

停止

睡1个

开始

RETVAL=$?

返回$ retval

}

重新加载{

Echo -n $'重新加载$ NGINX_NAME:'

Killproc $ NGINX_PROG -HUP

RETVAL=$?

回声

返回$ retval

}

状态{

Netstat -anpt | grep'/nginx'| awk'{print $ 6}'&>的/dev/null的

如果[[-f $ NGINX_LOCK_FILE]];然后

返回0

其他

返回1

网络

网络

返回1

}

_status {

状态

State=`netstat -anpt | grep'/nginx'| awk'{print $ 6}'`

Echo $'Nginx服务器状态为: $ state'

其他

Echo'Nginx服务器未运行'

网络

}

测试{

$ NGINX_PROG -t -c $ NGINX_CONF_FILE

RETVAL=$?

返回$ retval

}

案件'$ 1'in

启动)

开始

;

停止)

停止

;

重装)

重载

;

重新启动)

重新启动

;

状态)

_status

;

试验)

测试

;

*)

Echo'用法: {开始|停止|重装|重启|状态|测试}'

退出1

ESAC

将脚本添加到系统服务并将启动设置为启动

Chkconfig --add nginx

上的Chkconfig --level 3 nginx

脚本二

[root