欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

添加nginx作为系统服务

前言

创建一个脚本,该脚本将改变nginx守护进程,让nginx以系统服务的形式启动,守护进程以后将由标准的命令控制且在系统启动时自动启动。

System V脚本

大多数基于linux的操作系统,使用的是System-V风格的init守护进程,启动进程由init进程管理。 
守护进程遵循运行级别的原则(run level),系统运行级别表示当前计算机状态。

运行级别状态
0系统停止
1单用户模式(援救模式)
2多用户模式(不支持NFS)
3完整的多用户模式
4没有使用
5图形界面按模式
6重启系统

关闭系统:

[root@localhost ~]# telinit 0

重启系统:

[root@localhost ~]# telinit 6

对于每一个运行级别的转换都会有一组服务被执行,系统停止时它的运行级别为0,一旦开启将转换到默认启动级别,系统默认启动级别是在etc/inittab文件下配置的。

如何将一个服务安排到指定运行级别?

对于每一个运行级别,在/etc/rc.d目录都包含要执行的脚本: 
这里写图片描述 
rco.d-rc6.d并不是真实的文件,他们的符号链接会指向/etc/init目录下的脚本名,服务的启动脚本存储在/etc/init目录下。

init脚本

init脚本是作为系统启动服务的脚本,脚本必须接收两个命令:start和stop,在系统启动时,如果该服务的启动计划级别正是系统运行级别,那么init守护进程将运行该脚本。 
手动执行脚本:

[root@localhost rc.d]# service nginx start

或系统未提供service命令:

[root@localhost rc.d]# /etc/init.d/nginx start

为nginx建立init脚本

目录/etc/init.d实际上是/etc/rc.d/init.d的符号链接,因此在/etc/init.d目录下新建文件nginx(需要root权限):

[root@localhost rc.d]# vi /etc/init.d/nginx

脚本内容如下:

#!/bin/bash
#
# chkconfig: - 85 15
# description: Nginx is a World Wide Web server.
# processname: nginx

nginx=/usr/local/nginx/sbin/nginx
conf=/usr/local/nginx/conf/nginx.conf
case $1 in
start)
echo -n "Starting Nginx"
$nginx -c $conf
echo " done"
;;
stop)
echo -n "Stopping Nginx"
killall -9 nginx
echo " done"
;;
test)
$nginx -t -c $conf
;;
reload)
echo -n "Reloading Nginx"
ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
echo " done"
;;
restart)
$0 stop
$0 start
;;
show)
ps -aux|grep nginx
;;
*)
echo -n "Usage: $0 {start|restart|reload|stop|test|show}"
;;
esac1234567891011121314151617181920212223242526272829303132333435363738

安装nginx的init脚本

授予该脚本可执行权限:

[root@localhost rc.d]# chmod +x /etc/init.d/nginx

然后就可以开启nginx:

[root@localhost init.d]# service nginx start

或:

[root@localhost init.d]# /etc/init.d/nginx start

最后一步是设置该脚本在适当的运行级别开机自启,这依赖于操作系统,主要针对广泛使用的两种操作系统家族:基于Debain的Debain/Ubuntu/other家族和基于Red hat的Red hat/Fedora/Centos/other家族。

基于Debian的发布

一条命令即可完成系统级别初始化脚本:

# update-rc.d -f nginx defaults

该命令将在默认系统运行级别上建立链接,默认级别是指重启(reboot)和关闭(shutdown)级别,对于这两种级别,该脚本会执行stop参数,对于其他级别,则传递start参数而运行。

基于Red Hat的发布

添加服务:

# chkconfig –add nginx

检验该服务的运行级别:

# chkconfig –list nginx


这里写图片描述

使用ntsysv管理系统服务

ntsysv列出了所有能够计划在系统启动时执行的服务,可以开启它们,也可以禁用它们。

# yum install ntsysv -y

使用ntsysv:

# ntsysv

这里写图片描述



来自  http://blog.csdn.net/zsl10/article/details/52190206

普通分类: