linux -- 啟動時啟動服務或者執行命令


運行等級

  首先,我們需要知道Linux系統關於運行等級的知識。在不同的linux系統上(例如ubuntu和Fedora)這些數字與和所代表的意義可能不同,但主要的有以下幾個:

  1.  單用戶模式。
  2.  多用戶模式。
  3. 網絡多用戶模式。
  4. 用於特殊目的的預留
  5. 添加顯示管理器到等級3

  因此,對於普通的運行等級,服務使用等級3,這時不管X11是否啟動,服務將自動啟動。

 

服務,守護進程,服務器

  在Ubuntu中,可以使用sys-rc-conf命令簡單的選擇需要啟動的已安裝服務。

  在Fedora下,可以使用chkconfig達到同樣的目的。

 

自定義腳本與應用

  當然也有其它的方法配置系統啟動時需要自動運行的服務與應用程序。在/etc/rcX.d(X表示運行等級)目錄下,有許多需要運行在每個等級下的命令/腳本/應用。可以把具有某種目的(維護/掛載文件系統等)的腳本鏈接到這個目錄下,腳本就會在系統啟動時執行。

  創建連接時,需要注意命名格式:Sxx或者Syy(xx和yy使用數字代替,例如K36mysqld和S64mysqld)。這些命令將根據數字的大小依次執行,字母S與K是告訴系統這是個啟動或者結束命令(S->Start, K->Kill)。就是說,在選擇中運行等級下,系統啟時執行S開頭的連接,關閉時執行K開頭的鏈接。

例如:

$ ls /etc/rc0.d/ -ano
total 8
drwxr-xr-x.  2 0 4096 Apr  4 21:47 .
drwxr-xr-x. 10 0 4096 Mar 26 22:55 ..
lrwxrwxrwx.  1 0   22 Dec 12 08:48 K01livesys-late -> ../init.d/livesys-late
lrwxrwxrwx.  1 0   20 Dec 12 08:12 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx.  1 0   15 Apr  4 20:36 K80redis -> ../init.d/redis
lrwxrwxrwx.  1 0   17 Apr  4 21:47 K90network -> ../init.d/network
lrwxrwxrwx.  1 0   17 Dec 12 08:48 K99livesys -> ../init.d/livesys

 

 

另一種方法:

  可以在/etc/rc.local文件中加入需要執行的命令,當系統啟動完成時,這些命令將被執行。

  就是說,這些命令將在運行等級3后被執行,MySql, Apache等服務后啟動完后運行。盡管這是一種簡單的方案,但我還是推薦使用上一種方案,因為上一方案可以完全控制執行哪此命令,以及執行的時間和位置。當然這可能需要你有對Linux系統環境很好的了解。

 

引用

  1. Start a service or execute a script on boot on Ubuntu/Fedora


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM