前言

创建一个脚本,该脚本将改变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/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}"
;;
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

添加nginx作为系统服务相关推荐

  1. 下载和安装Nginx之添加Nginx作为系统服务(CentOS7为例)

    为什么80%的码农都做不了架构师?>>>    我们以CentOS7为例. 服务有系统(system)和用户(user)之分.如果需要开机没有登录情况下就能运行的程序,存在于系统服务 ...

  2. 添加nginx为系统服务(service nginx start/stop/restart)

    2019独角兽企业重金招聘Python工程师标准>>> 1.在/etc/init.d/目录下编写脚本,名为nginx #!/bin/sh # # nginx - this scrip ...

  3. linux7为nginx添加服务,CentOS7添加Nginx为系统服务

    1.编辑系统服务vim /usr/lib/systemd/system/nginx.service [unit] Description=Web Service After=network.targe ...

  4. CentOS7添加Nginx为系统服务

    1.编辑系统服务 1 2 3 4 5 6 7 8 9 10 11 12 vim /usr/lib/systemd/system/nginx.service  [unit] Description=We ...

  5. linux添加nginx,linux下安装Nginx1.16.0的教程详解

    因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 ? 创 ...

  6. window下添加nginx环境变量

    window下添加nginx环境变量 此电脑 --右键属性--环境变量 2. 系统变量 找到path 点编辑 3. 点"新建" 填入 你nginx安装的根目录 确认保存 4. 最后 ...

  7. Windows中添加svnserve作为系统服务

    安装subversion后,其安装目录中有svnserve程序. 采用windows系统的sc命令将其添加为自动启动的系统服务: sc create MySVNServer binpath= &quo ...

  8. nginx linux 系统服务,把ngnix注册为linux服务 将Nginx设置为linux下的服务

    一.创建服务脚本 vim /etc/init.d/nginx 脚本内容如下 #! /bin/sh # chkconfig: - 85 15 PATH=/web/server/nginx/sbin DE ...

  9. 基于lnmp 一键安装 添加 Nginx 的模块(module)

    lnmp 根目录下 1 lnmp.conf Nginx_Modules_Options 后添加所需的模块 如: Nginx_Modules_Options='–add-module=/usr/loca ...

  10. 添加nginx中的stream模块

    注: 1.nginx从1.9.0开始,新增加了一个stream模块,所以本文适用于1.9.0版本以上的nginx. 2.没有特殊标注需要root的用普通nginx用户就可以,比如你在a用户下安装ngi ...

最新文章

  1. modelandview跳转页面404_Thinkphp制作404跳转页
  2. 19、HTML5 新的 Input 类型
  3. CodeForces 906D (欧拉降幂)
  4. real210移植记录-支持eMMC,增加菜单操作
  5. c++ 或者 vc++中判断程序实例是否运行
  6. cocos2d 环绕已知点移动一圈
  7. tensorflow打印模型图_从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)...
  8. 聊聊身边的嵌入式,为什么老司机都爱后视镜
  9. python二次开发odoo_odoo二次开发 - 战鹏的Blog - OSCHINA - 中文开源技术交流社区
  10. php3源码分析,ThinkPHP3.1.3源码分析(一) 入口文件分析
  11. 1024大波红包来袭,程序员们请查收
  12. 扇贝有道180923每日一句
  13. pdg转换为pdf的方法
  14. 泛微E-Office v9任意文件上传(CNVD-2021-49104)复现
  15. c++ 显示三维散点图_办公小技巧:三维展示 用好Excel矩阵图
  16. lucas–kanade_Lucas-Kanade光流法 | 学步园
  17. PAT 1021 Deepest Root (25分) 从测试点3超时到满分再到代码优化
  18. C# 母版页页面导航
  19. 如何把Eclipse修改为黑色主题
  20. 顶点着色器和片段着色器的区别

热门文章

  1. 1、马克思主义哲学是科学的世界观和方法论
  2. 机器学习之十大经典算法(九)EM算法
  3. java web批量下载
  4. 什么是云计算,什么是网格计算,他们之间有什么区别
  5. 如何用python爬取股票数据选股_用python爬取股票数据
  6. 女孩起名取名字:聪明美丽、好听委婉的女孩名字
  7. 吴章金: 深度剖析 Linux共享库的“位置无关”实现原理
  8. MySQL中rank函数的使用
  9. c语言编写程序寻找最大公约数,C程序设计编程题库
  10. c语言中的整型常量和实型常量