1. 程式人生 > >linux設置開機自啟動

linux設置開機自啟動

clas pro 分別是 不能 kill .com log 一個 --

一.、在/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腳本或者可執行二進制文件

Linux開機的時候,會加載運行/etc/init.d目錄下的程序,因此我們可以把想要自動運行的腳本放到這個目錄下即可。系統服務的啟動就是通過這種方式實現的。

三、運行級別設置

簡單的說,運行級就是操作系統當前正在運行的功能級別。

不同的運行級定義如下:
# 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設置開機自啟動