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

運行等級

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

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

  所以,對於普通的運行等級,服務使用等級3,這時無論X11是否啓動,服務將自動啓動。linux

 

服務,守護進程,服務器

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

  在Fedora下,可使用chkconfig達到一樣的目的。sql

 

自定義腳本與應用

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

  建立鏈接時,須要注意命名格式: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文件中加入須要執行的命令,當系統啓動完成時,這些命令將被執行。spa

  就是說,這些命令將在運行等級3後被執行,MySql, Apache等服務後啓動完後運行。儘管這是一種簡單的方案,但我仍是推薦使用上一種方案,由於上一方案能夠徹底控制執行哪此命令,以及執行的時間和位置。固然這可能須要你有對Linux系統環境很好的瞭解。code

 

引用blog

  1. Start a service or execute a script on boot on Ubuntu/Fedora
相關文章
相關標籤/搜索