課程實驗: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

(感謝大佬們寫的博客!)

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