一.、在/etc/rc.local文件中添加自啓動命令
執行命令: 編輯"/etc/rc.local",添加你想開機運行的命令html
運行程序腳本:而後在文件最後一行添加要執行程序的全路徑。mysql
例如,每次開機時要執行一個hello.sh,這個腳本放在/usr下面,那就能夠在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt && ./hello.sh "linux
注意,你的命令應該添加在:exit 0 以前sql
2、在/etc/init.d目錄下添加自啓動腳本
linux在「/etc/rc.d/init.d」下有不少的文件,每一個文件都是能夠看到內容的,其實都是一些shell腳本或者可執行二進制文件
Linux開機的時候,會加載運行/etc/init.d目錄下的程序,所以咱們能夠把想要自動運行的腳本放到這個目錄下便可。系統服務的啓動就是經過這種方式實現的。shell
3、運行級別設置
簡單的說,運行級就是操做系統當前正在運行的功能級別。apache
不一樣的運行級定義以下: # 0 - 停機(千萬不能把initdefault 設置爲0 ) # 1 - 單用戶模式 進入方法#init s = init 1 # 2 - 多用戶,沒有 NFS # 3 - 徹底多用戶模式(標準的運行級) # 4 - 沒有用到 # 5 - X11 多用戶圖形模式(xwindow) # 6 - 從新啓動 (千萬不要把initdefault 設置爲6 )
例:在Ubuntu/debain裏,可使用update-rc.d命令來把示例腳本:/etc/init.d/proxy安裝到各個runlevel中。ide
update-rc.d proxy defaults 99
update-rc.d後面有三個參數,分別是/etc/init.d下的腳本名字,默認安裝方式,運行的優先級。優先級的數字越大,表示越遲運行,這裏咱們把本身寫的服務放在最後運行。post
若是要卸載隨機啓動的服務,執行ui
update-rc.d -f proxy remove
在update-rc.d安裝的時候提示了警告信息,是由於咱們寫的/etc/init.d/proxy太簡陋了,只包含了咱們想要的命令,連LSB的信息也沒有提供。spa
update-rc.d: warning: /etc/init.d/proxy missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
只須要對自啓動腳本作一些小改動,就能夠避免那個警告了。以下:
#!/bin/sh ### BEGIN INIT INFO # Provides: proxy # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start or stop the HTTP Proxy. ### END INIT INFO case "$1" in start) start-stop-daemon --start --background --exec /root/proxy.py ;; stop) start-stop-daemon --stop --name proxy.py esac
到此,一個最簡單的隨機啓動服務寫好了,看起來文章挺長的,但其實也就幾個命令而已。
在下次開機啓動的時候,proxy.py就會以root用戶身份被自動運行。
4、把腳本註冊爲系統服務
在/etc/init.d下新建示例腳本文件(startTest.sh),該腳本會啓動/opt/test.sh。內容以下:
. /etc/init.d/functions start() { echo "Starting my process " cd /opt ./test.sh } stop() { killall test.sh echo "Stoped" }
寫了腳本文件以後事情尚未完,繼續完成如下幾個步驟:
chmod +x startTest #增長執行權限 chkconfig --add startTest #把startTest添加到系統服務列表 chkconfig startTest on #設定startTest的開關(on/off) chkconfig --list startTest.sh #就能夠看到已經註冊了startTest的服務