原文: https://www.jianshu.com/p/2e03255cfabb

ubuntu配置开机自动启动服务

----------------------------------------------------------------

这里需要特别说明的是,Ubuntu系统下没有RedHat系统下的chkconfig命令。
但Ubuntu有一个类似的命令: sysv-rc-conf

通过apt-get命令完成sysv-rc-conf软件的安装。

背景

Linux系统的运行级别有7个,分别对应的:

  • 0: 关机
  • 1: 单用户(维护)
  • 2~5: 多用户
  • 6: 重启

可以通过runlevel命令来查看当前系统的运行等级:

wds@wds-VirtualBox:~$ runlevel
N 2

其中第一个表示上一次的运行等级,N表示没有上一次运行等级的记录;第二个表示当前运行等级,这里为2.

Linux中所有开机自启动项目运行脚本都放在/etc/init.d/目录下;同时在/etc/目录下有rc?.d目录,分别对应了7中不同的运行级别:

wds@wds-VirtualBox:/$ ls  /etc/ | grep ^rc
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
rc.local
rcS.d

这里rc2.d目录就对应了我们系统当前的运行等级。

其中里面的一些文件其实都是/etc/init.d/目录下文件的软链接:

wds@wds-VirtualBox:/etc/rc2.d$ ls -ltr
total 4
-rw-r--r-- 1 root root 677 3月 13 2014 README
lrwxrwxrwx 1 root root 18 12月 8 19:49 S99rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root 18 12月 8 19:49 S99ondemand -> ../init.d/ondemand
lrwxrwxrwx 1 root root 18 12月 8 19:49 S70pppd-dns -> ../init.d/pppd-dns
lrwxrwxrwx 1 root root 19 12月 8 19:49 S70dns-clean -> ../init.d/dns-clean
lrwxrwxrwx 1 root root 15 12月 8 19:49 S50saned -> ../init.d/saned
lrwxrwxrwx 1 root root 27 12月 8 19:49 S20speech-dispatcher -> ../init.d/speech-dispatcher
lrwxrwxrwx 1 root root 15 12月 8 19:49 S20rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 20 12月 8 19:49 S20kerneloops -> ../init.d/kerneloops
lrwxrwxrwx 1 root root 21 12月 9 17:25 S99grub-common -> ../init.d/grub-common
lrwxrwxrwx 1 root root 15 12月 9 17:45 S20nginx -> ../init.d/nginx
lrwxrwxrwx 1 root root 17 12月 9 17:47 S20php-fpm -> ../init.d/php-fpm

整个开机自启动项的流程如下:

  1. 开机后,系统获得当前的运行等级(例如这里的等级为2);
  2. 运行/etc/rc?.d目录下的所有可执行文件(这里运行/etc/rc2.d/目录下所有的软链接。这些软链接的源文件都保存在/etc/init.d/目录下)。

因此我们只需要在/etc/init.d/完成启动nginx进程的脚本,然后在/etc/rc2.d/做对应的软链接即可。

配置nginx自启动文件

创建/etc/init.d/nginx文件

#! /bin/sh
# Author: rui ding
# Modified: Geoffrey Grosenbach http://www.linuxidc.com
# Modified: Clement NEDELCU
# Reproduced with express authorization from its contributors
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME # If the daemon file is not found, terminate the script.
test -x $DAEMON || exit 0 d_start() {
$DAEMON || echo -n " already running"
} d_stop() {
$DAEMON –s quit || echo -n " not running"
} d_reload() {
$DAEMON –s reload || echo -n " could not reload"
} case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "reloaded."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
# Sleep for two seconds before starting again, this should give the
# Nginx daemon some time to perform a graceful stop.
sleep 2
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
exit 3
;;
esac
exit 0

然后利用sysv-rc-conf命令将其在对应rc?.d目录下建立一个软链接:

root@wds-VirtualBox:~# sysv-rc-conf nginx on

该命令会在rc2.d ~ rc5.d目录下都建立了一个nginx的软链接。

作者:北极狐狸
链接:https://www.jianshu.com/p/2e03255cfabb
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Ubuntu14.04配置nginx开机自启动项的更多相关文章

  1. Centos8配置Nginx开机自启动

    第一步:创建service文件,并编辑(可理解为开机时自动启动Nginx的脚本服务文件) vim /lib/systemd/system/nginx.service /lib 与 /usr/lib 里 ...

  2. Centos6.5 配置Nginx开机自启动

    1.在/etc/init.d/目录下创建 nginx 文件,内容如下: #!/bin/sh # # nginx - this script starts and stops the nginx dae ...

  3. Centos下安装并设置nginx开机自启动

    一.在centos环境下安装下载并安装nginx,由于nginx需要依赖一些环境才能安装,主要依赖g++.gcc.openssl-devel.pcre-devel和zlib-devel这些环境,首先得 ...

  4. centos7下安装、配置Nginx、设置Nginx开机自启动

    测试环境: [root@centos-linux ~]# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core) [root@cento ...

  5. Caffe+CUDA7.5+CuDNNv3+OpenCV3.0+Ubuntu14.04 配置参考文献 以及 常见编译问题总结

    Caffe+CUDA7.5+CuDNNv3+OpenCV3.0+Ubuntu14.04  配置参考文献 ---- Wang Xiao Warning: Please make sure the cud ...

  6. Caffe+CUDA8.0+CuDNNv5.1+OpenCV3.1+Ubuntu14.04 配置参考文献 以及 常见编译问题总结

    Caffe + CUDA8.0 + CuDNNv5.1 + OpenCV3.1 + Ubuntu14.04  配置参考文献 ---- Wang Xiao  Anhui University  CVPR ...

  7. ubantu18.04 配置nginx与uwsgi(前后端分离)

    ubantu18.04 配置nginx与uwsgi   一.首先先安装nginx静态服务 先更新 sudo apt-get update 1.安装gcc g++的依赖库 sudo apt-get in ...

  8. [MAC]配置Jenkins 开机自启动

    如果是将jenkins.war放在tomcat中运行的, 则可以配置开机启动tomcat,脚本如下: XXX表示是你安装Tomcat所在目录 #启动tomcat cd XXX/Tomcat8/bin ...

  9. Ubuntu14.04配置gcc4.4.4+Qt4.8.4交叉编译环境

    安装32位程序运行支持 sudo apt-get install lib32stdc++6 lib32z1 lib32ncurses5 lib32bz2-1.0 可能报错: lib32stdc++6 ...

随机推荐

  1. Linux下使用ssh远程登录服务器

    如果自己的服务器是在内网,想在外网通过ssh在自己的VPS服务器上远程登录自己的内网服务器,可以按照如下操作: 一.在自己的服务器上使用如下命令: #ssh -CfnNT -R 端口A:localho ...

  2. 如何实现electron多页面间通信

    如何实现electron多页面间通信 1,业务需求: 总共有两个页面,页面A显示数据,页面B处理数据,主线程Main 2,实现的技术方案: 在主线程中打开页面A和B,B页面不进行显示,主要负责处理从A ...

  3. iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8001 -j DNAT --to-destination 172.17.0.5:8080 ! -i docker0: iptables: No chain/target/match by that name.

    在docker容器上部署项目后,启动docker容器,出现 iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dpor ...

  4. maven 打包可运行jar包(转)

    目录 1.前提 2.方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 3.方法二:使用maven-assembly-plugin插件打包 4.方法三 ...

  5. JZYZOJ1445 [noip2014day1-T3]飞扬的小鸟 动态规划 完全背包

    http://172.20.6.3/Problem_Show.asp?id=1445 很容易看出来动态规划的本质,但是之前写的时候被卡了一下(不止一下),还是写一下题解. 直接暴力O(n*m^2)大概 ...

  6. 【BFS/DFS/YY】派对灯

    [luogu1468]派对灯 题目描述 在IOI98的节日宴会上,我们有N(10<=N<=100)盏彩色灯,他们分别从1到N被标上号码. 这些灯都连接到四个按钮: 按钮1:当按下此按钮,将 ...

  7. ubuntu16 安装docker

    本文开发环境为Ubuntu 16.04 LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即Docker社区版,是开发人员和小型团队 ...

  8. django2与1的差别和视图

    django1与2路由的差别 在django1中的url在django2中为re_path django2中新增了path 1.from django.urls import path 2.不支持正则 ...

  9. Android系统UI交互控件Action Bar初探

    过年期间,Google正式宣布取消Android系统中MENU键的使用,也就是基于Android 4.0系统的手机都应没有MENU这一固定按键.这无疑是个变革性的改动,在我眼中,这似乎把Android ...

  10. kubernetes HA 脚本

    集群方案: 发行版:CentOS 7 版本: Kubernetes:1.9.1 master高可用方案:keepalived LVS 网络方案:Flannel Master HA 四步骤: 1. 安装 ...