添加nginx作为系统服务

来源:互联网 发布:期货和股票的区别 知乎 编辑:程序博客网 时间:2024/05/17 01:28

前言

创建一个脚本,该脚本将改变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: nginxnginx=/usr/local/nginx/sbin/nginxconf=/usr/local/nginx/conf/nginx.confcase $1 instart)echo -n "Starting Nginx"$nginx -c $confecho " done";;stop)echo -n "Stopping Nginx"killall -9 nginxecho " done";;test)$nginx -t -c $conf;;reload)echo -n "Reloading Nginx"ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUPecho " done";;restart)$0 stop$0 start;;show)ps -aux|grep nginx;;*)echo -n "Usage: $0 {start|restart|reload|stop|test|show}";;esac

安装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

这里写图片描述

0 0
原创粉丝点击