這里整理Debian 開機自動運行機制的一種情況,就是rc0.d rc1.d .... rcn.d
在/etc目錄下,有init.d目錄,其中放着一些腳本還有rc.local ,都是放着開機后自動運行的腳本。
而在/etc/rc(n).d目錄中,實質上放着是類似快捷方式的鏈接文件。只想init.d中的腳本。
如果我們想添加一個自動運行的腳本,現在/etc/init.d目下新建一個,腳本可以使python ,sh都可以。
具體的格式可以參見/etc/init.d目錄中的一些例子。
關鍵是 update-rc.d scriptname start 99 2 3 4 5 stop 01 0 1 6
其中 scriptname ,就是自動運行的腳本的名字
start 后面的一個參數 ,是啟動的運行順序 ,后面的2 3 4 5 (可多可少) 為在哪幾個級別中運行(Debian 沒有圖形界面時, 默認是2)
stop 同stop ,是關關機時運行的順序,后面的(0 1 6) 也是運行級別。
運行級別介紹:在/etc/inittab里面看,下面的定義並不是標准配置,隨着Debian版本的改變而改變。
一般2、3、4、5都是自定義的,具體看系統服務在2、3、4、5哪個級別運行。
比如gdm在5運行,那就是5是圖形界面,如果gdm在2、3、4、5都運行,那么所有的2、3、4、5開機都會啟動圖形界面
0 停機
1 單用戶模式
2 多用戶,沒有NFS
3 完全多用戶模式
4 不知道
5 圖形界面
6 重新啟動
debian wheezy 里邊要添加一個自動啟動的服務
先將啟動腳本放在/etc/init.d,然后使用insserv來啟用這個服務
例如服務名稱為 myserver,則腳本為/etc/init.d/myserver
然后使用 insserv myserver可以將myserver設為自動啟動
- insserv myserver #添加服務
- insserv -r myserver #刪除服務
- insserv -d myserver #使用默認的runlevels
腳本里邊要定義啟動文件的metadata,格式
- #!/bin/bash
- #
- ### BEGIN INIT INFO
- # Provides: mysql
- # Required-Start: $remote_fs $syslog
- # Required-Stop: $remote_fs $syslog
- # Should-Start: $network $time
- # Should-Stop: $network $time
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Start and stop the mysql database server daemon
- # Description: Controls the main MySQL database server daemon "mysqld"
- # and its wrapper script "mysqld_safe".
- ### END INIT INFO
- #