课程实验:Ubuntu中不存在inittab的相关问题

      【前言】:本博客是学习时遇到的问题记录下来的,还不够严谨,若有大佬发现错误,请指正,谢谢! :D   

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

        inittab实际上是一个不可执行的文本文件,里面含有对于各种对于开机设置的配置命令,主要用于开机时第一进程init读取。

        然而在ubuntu中是没有inittab的,inittab软件包已经被Upstart软件包替换了,所有的配置信息都在/etc/event.d/目录下,inittab被/etc/event.d/代替了;在之后的更新中,/etc/even.d/etc/init代替了,配置文件变为rc-sysinit.conf

 

      【注1】:Linux启动过程详解(包含inittab)https://www.cnblogs.com/sysk/p/4778976.html

      【注2】:ubuntu自9.10之后不再使用/etc/event.d目录的配置文件,替换/ etc / init

                     参考:http://upstart.ubuntu.com/cookbook/#runlevels 中的4.6和4.7

 

       同时出现了另一个文件夹/ect/init.d,内包含类似于rc.d的开机命令,主要负责开机模式runlevel不同的开机模式给予init不同的配置命令,/ect/init.d实际上是/etc/rc.d/init.d软链接文件。

      由于我使用的是ubuntu18.04,在最新的ubuntu18.04系统中,不再使用 inited 管理系统,改用 systemd

 

可以看到在/etc下init文件仍然存在,但里面不包含系统启动配置文件了。

init.d中还有着类似rc.d的文件,/ect中还有rc.d的启动模式配置文件

----------------------------------------------------------------------------分割线----------------------------------------------------------------------------------

回归正题,开机时systemd 默认读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。一般系统安装完 /lib/systemd/system/ 下会有 rc-local.service 文件,即需要的配置文件。

 

打开re-local.service

 

 

一般正常的启动文件主要分成三部分:

【Unit】段:启动顺序与依赖关系

【Service】段:启动行为。如何启动,启动类型

【Install】段:定义如何安装这个配置文件,即怎样做到开机启动

 

很明显它少了 Install 段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。 因此我们就需要在后面帮他加上 [Install] 段:

设置软链接,将/lib/systemd/system/rc-local.service链接到/etc/systemd/system目录下面来:

 

 

因为ubuntu-18.04 server 版默认是没有 /etc/rc.local 这个文件的,需要自己创建,创建rc.local文件:

 

给予rc.local文件权限,这边我打算给774

 

 

然后开始编辑rc.local:

 

ps

{

#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径,就是指定本脚本的解释器。

加上-e:让脚本在执行到过程中碰到错误就不往下面执行

}

 

目前test1目录下是没有hello.log的

 

重启之后:

发现有hello.log,打开看一看:

成功!

 

总结:

      inittab文件就是让linux系统在启动时应该做一些什么,在查阅的资料中,inittab是决定linux的用户模式,之后要如何运行还需要看rc.d里的配置(个人理解)。

     虽然ubuntu18.04中没有这一个文件,但可以通过类似的方法,在脚本中写入需要的命令,达到启动时自动启动的效果。

 

参考资料:

even.d:https://wiki.ubuntu.org.cn/%E5%90%AF%E5%8A%A8#.2Fetc.2Fevent.d

init:http://upstart.ubuntu.com/cookbook/#runlevels

        https://www.cnblogs.com/sysk/p/4778976.html

开机启动服务及脚本:https://blog.csdn.net/qq_21845263/article/details/83041879

#!脚本:https://blog.csdn.net/imxiangzi/article/details/50529647

                https://www.cnblogs.com/EasonJim/p/6850319.html

(感谢大佬们写的博客!)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章