當咱們使用 chkconfig --list的時候 都會又 123456 這樣的級別. 當某個級別是 onshell
他就會開機啓動,當他是off 的時候他就不會開機自啓動. 那麼這是什麼緣由呢?他的bash
原理是什麼?ssh
查看chkconfig的結果:ide
思考 爲何 咱們設置了3級別 on 他就會開機自啓動呢?spa
還記得開機自動的級別嗎? 咱們默認使用的什麼級別呢?blog
咱們默認啓動的是 /etc/rc.d/rc3.d/ 這裏面的全部的腳本
ip
拿 sshd 爲例子: 咱們看看開機啓動的 rc3.d 中的腳本rem
咱們如今看到的是: 這個文件 實際上是一個軟鏈接文件 他指向了 /etc/init.d/sshd 的實體文件. 可是奇怪的是他的名字是 S55sshd 而不是 sshd,好了,咱們如今關閉他開機自啓動,再看一下:it
看清楚們?同志們,這貨來了個變身術..他再也不是S55了 而是變成了 k25sshdio
是否是很驚喜,是不死和很意外?? 那麼這是爲何呢?
其實 這一切都只是源文件在做怪:
咱們來編輯這個文件看看裏面是什麼狀況:
咱們來主要看這一塊, 看清楚沒? 有一個 55 和25 是否是和剛纔的 k25 s55 很像?
解釋: 這裏的 2345 是啓動級別
系統一旦識別到是 3 級別下啓動了 sshd服務 就自動在 /etc/init.d/sshd 中生成了一個叫 S55sshd 的文件, 一旦中止 他就會當即刪除 S55sshd文件,而後再生成一個K25sshd的文件... 他們不管啓動或者中止 他們始終指向原來的腳本. 那麼這裏的意思你懂了嗎?
1.當咱們在腳本中設置了一個程序爲開機自動啓動的時,他就會在/etc/init.d/的目錄中 添加了一個 軟鏈接指向源文件.
2. 當咱們關閉了一個程序的開機啓動後,他就會在/etc/init.d/的目錄中添加一個軟鏈接指向源文件.
在咱們明白了這個原理的時候,咱們作如下操做 不適用chkconfig 就讓他on或者off
來查看如今sshd 的狀態是什麼?
[root@oldboyedu-sh01 ~]# chkconfig --list | grep sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
能夠看出目前sshd的3級別是on,那麼咱們如今作以下操做:
刪除掉這個文件,咱們本身從新 作個快捷方式到 sshd
[root@oldboyedu-sh01 ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/K25sshd |
那麼 如今咱們從新再看sshd服務的狀態
他變成了 off 了? 驚不驚喜?意不意外?? 那麼如今你明白了他的原理了嗎?
原理:
任何文件須要進行開機啓動,那麼就至關於在 /etc/rc.d/rc3.d/ 中 設置一個
軟鏈接指向實體文件,他們的啓動是 S開頭 不啓動是K開頭. 開啓和關閉
所有由文件 控制.
不信咱們就查看sshd 配置文件:
這裏 :
2345 表示 級別
55 表示開啓
25 表示關閉
咱們想建立一個文件開機啓動 同樣能夠如此配置:
#!/bin/bash # chkconfig: 2345 55 25 # description: SSH is a protocol for secure remote shell access. |
隨後使用 chkconfig --add [文件名] 添加到i系統的開機啓動中
這樣之後咱們就能夠作到 系統級 開機自啓動了,你明白了嗎?