ubuntu系统中/etc/rc.local和/etc/init.d/rc.local的区别详解

 更新时间:2017年08月08日 11:08:25   作者:普朗克常量  
这篇文章主要给大家介绍了关于在ubuntu系统下/etc/rc.local和/etc/init.d/rc.local区别的相关资料,文中通过示例代码介绍的非常详细,对需要的朋友们具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

前言

我们在ubuntu下要把一个程序加入开机启动,一般可以通过修改rc.local来完成,但ubuntu下有两个rc.local文件。分别是/etc/rc.local和/etc/init.d/rc.local。可以看一下两个文件的内容找到他俩的关系:

/etc/init.d/rc.local

#! /bin/sh
### BEGIN INIT INFO
# Provides:  rc.local
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist
### END INIT INFO


PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start() {
 if [ -x /etc/rc.local ]; then
  [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
 /etc/rc.local
 ES=$?
 [ "$VERBOSE" != no ] && log_end_msg $ES
 return $ES
 fi
}

case "$1" in
 start)
 do_start
 ;;
 restart|reload|force-reload)
 echo "Error: argument '$1' not supported" >&2
 exit 3
 ;;
 stop)
 ;;
 *)
 echo "Usage: $0 start|stop" >&2
 exit 3
 ;;
esac

从注释可以看出该脚本运行在2 3 4 5的启动级别,只能处理start的参数,然后执行start,如果有/etc/rc.local文件的话则执行/etc/rc.local。如果要把开机启动的程序放/etc/init.d/rc.local文件里,记住千万别一股脑写文件最后面就行了,因为在case语句块里脚本就会退出。

/etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

这个脚本里面基本没有内容,就是写个模板让你放开机自启动程序的。把你的程序写在exit 0行的前面就行了。

所以要添加开机启动项,只需在/etc/rc.local文件中添加就行了。

ubuntu的启动级别:

  0   关机

  1   单用户

  2-5  多用户图形界面

  6   重启 

对应每个启动级别,/etc/目录下都对应一个像/etc/rc5.d/这样的目录,下面是一些脚本,这些脚本基本都是对应/etc/init.d/目录下的软链接,命名里面的数字代表优先级,启动时这些脚本都会执行一遍。

备注:我的系统为ubuntu 15.04

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 分享十个便宜VPS主机-VPS服务器建站和搭建应用服务体验

    分享十个便宜VPS主机-VPS服务器建站和搭建应用服务体验

    这篇文章主要介绍了分享十个便宜VPS主机-VPS服务器建站和搭建应用服务体验,非常具有实用价值,需要的朋友可以参考下
    2017-07-07
  • Linux中查找文件夹的命令解读

    Linux中查找文件夹的命令解读

    这篇文章主要介绍了Linux中查找文件夹的命令,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Linux实现双网卡绑定的代码详解

    Linux实现双网卡绑定的代码详解

    linux 主机安装双网卡,共享一个IP地址,对外提供访问,实际同样连接两条物理线路到交换机实现平时双网卡同时工作,分流网络压力,同时提供冗余备份,监控,防止物理线路的单点故障,本文介绍了Linux实现双网卡绑定的代码示例,需要的朋友可以参考下
    2024-07-07
  • linux systemctl命令详解

    linux systemctl命令详解

    这篇文章主要介绍了linux systemctl命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • CentOS7使用yum安装PostgreSQL和PostGIS的方法

    CentOS7使用yum安装PostgreSQL和PostGIS的方法

    这篇文章主要介绍了CentOS7使用yum安装PostgreSQL和PostGIS的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Vmware虚拟机中centOS7安装图文教程

    Vmware虚拟机中centOS7安装图文教程

    这篇文章主要为大家详细介绍了Vmware虚拟机中centOS7安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Linux中FTP服务器的搭建教程

    Linux中FTP服务器的搭建教程

    这篇文章主要为大家详细介绍了Linux中FTP服务器的搭建教程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • p8net bet LINUX 云版本 1.b.1

    p8net bet LINUX 云版本 1.b.1

    这篇文章主要介绍了p8net bet LINUX 云版本 1.b.1,需要的朋友可以参考下
    2016-11-11
  • 详解linux中的strings命令简介

    详解linux中的strings命令简介

    本篇文章主要介绍了linux中的strings命令简介,在linux下搞软件开发的朋友, 几乎没有不知道strings命令的。非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • linux 和 dockerfile 中配置环境变量的方式总结

    linux 和 dockerfile 中配置环境变量的方式总结

    要熟悉 dockerfile 配置 linux 的知识不能少,所以本文将给大家总结 linux 与 dockerfile 中各种环境变量,需要的朋友可以参考下
    2023-07-07

最新评论