linux設置開機自啟動
一.、在/etc/rc.local文件中添加自啟動命令
執行命令: 編輯"/etc/rc.local",添加你想開機運行的命令
運行程序腳本:然後在文件最後一行添加要執行程序的全路徑。
例如,每次開機時要執行一個hello.sh,這個腳本放在/usr下面,那就可以在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt && ./hello.sh "
註意,你的命令應該添加在:exit 0 之前
二、在/etc/init.d目錄下添加自啟動腳本
linux在“/etc/rc.d/init.d”下有很多的文件,每個文件都是可以看到內容的,其實都是一些shell腳本或者可執行二進制文件
三、運行級別設置
簡單的說,運行級就是操作系統當前正在運行的功能級別。
不同的運行級定義如下: # 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中。
update-rc.d proxy defaults 99
update-rc.d後面有三個參數,分別是/etc/init.d下的腳本名字,默認安裝方式,運行的優先級。優先級的數字越大,表示越遲運行,這裏我們把自己寫的服務放在最後運行。
如果要卸載隨機啟動的服務,執行
update-rc.d -f proxy remove
在update-rc.d安裝的時候提示了警告信息,是因為我們寫的/etc/init.d/proxy太簡陋了,只包含了我們想要的命令,連LSB的信息也沒有提供。
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用戶身份被自動運行。
四、把腳本註冊為系統服務
在/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的服務
linux設置開機自啟動