linux開機自啟動設定方法

來源:互聯網
上載者:User

1.開機啟動時自動運行程式

Linux載入後, 它將初始化硬體和裝置驅動, 然後運行第一個進程init。init根據設定檔繼續引導過程,啟動其它進程。通常情況下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的指令檔,可以使init自動啟動其它程式。例如:編輯 /etc/rc.d/rc.local 檔案,在檔案最末加上一行"xinit"或"startx",可以在開機啟動後直接進入X-Window。

2.登入時自動運行程式
使用者登入時,bash首先自動執行系統管理員建立的全域登入script :/ect/profile。然後bash在使用者起始目錄下按順序尋找三個特殊檔案中的一個:/.bash_profile、/.bash_login、 /.profile,但只執行最先找到的一個。
因此,只需根據實際需要在上述檔案中加入命令就可以實現使用者登入時自動運行某些程式(類似於 DOS下的Autoexec.bat)。

3.退出登入時自動運行程式
退出登入時,bash自動執行個人的退出登入指令檔 /.bash_logout。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",則在每次退出登入時自動執行 "tar" 命令備份 *.c 檔案。

4.定期自動運行程式
Linux有一個稱為crond的精靈,主要功能是周期性地檢查 /var/spool/cron目錄下的一組命令檔案的內容,並在設定的時間執行這些檔案中的命令。使用者可以通過crontab 命令來建立、修改、刪除這些命令檔案。
例如,建立檔案crondFile,內容為"00 9 23 Jan * HappyBirthday",運行"crontab cronFile"命令後,每當元月23日上午9:00系統自動執行"HappyBirthday"的程式("*"表示不管當天是星期幾)。

5.定時自動運行程式一次
定時執行命令at 與crond 類似(但它只執行一次):命令在給定的時間執行,但不自動重複。at命令的一般格式為:at [ -f file ] time ,在指定的時間執行file檔案中所給出的所有命令。也可直接從鍵盤輸入命令:

 代碼如下 複製代碼

$ at 12:00
at>mailto Roger -s ″Have a lunch″ < plan.txt
at>Ctr-D
Job 1 at 2000-11-09 12:00


設定服務自啟動的三種方式

主要用三種方式進行這一操作:

ln -s                       在/etc/rc.d/rc*.d目錄中建立/etc/init.d/服務的軟連結(*代表0~6七個運行層級之一)

chkonfig                命令列運行層級設定

ntsysv                   偽圖形運行層級設定

 注意:

1.這三種方式主要用於以redhat為基礎的發行版

2.如果還不知道運行層級是什麼,那麼最好先看看相關資料再實驗

 第一種方式:ln -s 建立啟動軟串連
在Linux中有7種運行層級(可在/etc/inittab檔案設定),每種運行層級分別對應著/etc/rc.d/rc[0~6].d這7個目錄

Tips:/etc/rc[0~6].d其實是/etc/rc.d/rc[0~6].d的軟串連,主要是為了保持和Unix的相容性才做此策

 

這7個目錄中,每個目錄分別存放著對應運行層級載入時需要關閉或啟動的服務

由詳細資料可以知道,其實每個指令檔都對應著/etc/init.d/目錄下具體的服務

K開頭的指令檔代表運行層級載入時需要關閉的,S開頭的代表需要執行

因此,當我們需要開機啟動自己的指令碼時,只需要將可執行指令碼丟在/etc/init.d目錄下,然後在/etc/rc.d/rc*.d中建立軟連結即可

[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh

此處sshd是具體服務的指令檔,S100ssh是其軟連結,S開頭代表載入時自啟動

如果需要在多個運行層級下設定自啟動,則需建立多個軟連結

這種方式比較繁瑣,適用於自訂的服務指令碼

如果系統中已經存在某些服務(比如安裝apache時就會有httpd服務項),可以使用下面的兩種方式

 

第二種方式:chkconfig

如果需要自啟動某些服務,只需使用chkconfig 服務名 on即可,若想關閉,將on改為off

在預設情況下,chkconfig會自啟動2345這四個層級,如果想自訂可以加上--level選項

上面我們先將sshd服務的所有啟動層級關閉,然後使用--level選項啟動自訂層級

Tips:--list選項可查看指定服務的啟動狀態,chkconfig不帶任何選項則查看所有服務狀態

 

第三種方式:ntsysv 偽圖形

ntsysvchkconfig其實是一樣的,只不過加上了圖形而已

啟動ntsysv有兩種方式,一是直接在命令列中輸入ntsysv,二是使用setup命令,然後選擇系統服務

預設情況下,當前運行層級為多少,在ntsysv中設定的啟動服務的層級便是多少

比如,我當前的運行層級是3,那麼我在偽圖形介面中選擇啟動服務後,它的運行層級也會是3

如果想自訂運行層級可使用ntsysv --level方式

 

以上三種操作需要保證服務指令檔可執行,並且要有root許可權

其中,第一種方式多用於自訂指令碼,第二、三種多用於系統已存在的服務

比如ftp、samba、ssh、httpd等等

並且,要做相關設定需要弄清楚運行層級的問題

 

Tips:如果想手動啟動某服務,傳統的方式是 /etc/init.d 服務名 start

           實際上還可以這樣,service 服務名 start

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.