【前言】:本博客是學習時遇到的問題記錄下來的,還不夠嚴謹,若有大佬發現錯誤,請指正,謝謝! :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
(感謝大佬們寫的博客!)