Ubuntu 設置開機啟動命令/腳本



Ubuntu 設置rc.local開機啟動命令/腳本一般有兩種方法:



方法一:rc.local腳本

rc.local腳本是一個Ubuntu開機后會自動執行的腳本,我們可以在該腳本內添加命令行指令。該腳本位於/etc/路徑下,需要root權限才能修改。
注意:rc.local腳本里面啟動的用戶默認為root權限。
命令或腳本需要添加在exit 0之前
例如在rc.local中添加mkdir /root/test1234 表示在開機啟動后自動在/root/下創建一個test1234目錄
#!/bin/sh -e # # rc.local # # This script is executed at the end of each
multiuser runlevel. # Make sure that the script will "exit 0" on success or any
other # value on error. # # In order to enable or disable this script just
change the execution # bits. # # By default this script does nothing.
/usr/local/bin/gen-friendlyelec-release . /etc/friendlyelec-releaseif [ ! -f
/etc/firstuse ];then /bin/echo ${BOARD} > /etc/hostname /bin/sed -i

 


"s/\(127.0.1.1\s*\).*/\1${BOARD}/g" /etc/hosts /bin/hostname ${BOARD} /bin/echo
"0" > /etc/firstuse fi . /usr/bin/setqt4env /usr/bin/lcd2usb_print "CPU:
{{CPU}}" "Mem: {{MEM}}" "IP: {{IP}}" "LoadAvg: {{L$ #/opt/QtE-Demo/run.sh&
mkdir /root/test1234 exit 0




方法二:update-rc.d增加開機啟動服務

在Ubuntu系統中添加一個開機啟動腳本,操作如下:

1、新建腳本文件start_test.sh 代碼如下:
#!/bin/sh ### BEGIN INIT INFO # Provides: start_test.sh # Required-Start: $all
# Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 #
Short-Description: starts the start_test.sh # Description: starts start_test.sh
# for security. ### END INIT INFO mkdir /root/start_test456
INIT
INFO描述了該腳本為哪個應用程序提供服務。還說明了運行該應用程序之前需要先運行哪些應用程序,例如這里寫的$all,表示該程序將在其他依賴程序都已經啟動的情況下才啟動。init腳本中最重要的描述可能就是Default-Start和Default-Stop,這里描述了該腳本在Linux系統中的運行級別,運行級別的定義如下:

* level 0:停機
* level 1 :單用戶 l
* evel 2&3 :多用戶
* level 4 : 用戶自定義
* level 5:系統一般運行狀態
* level 6:重啟
Short-Description以及Description填寫服務描述

2、設置權限
sudo chmod +x start_test.sh
3、拷貝到/etc/init.d/下
sudo cp ./start_test.sh /etc/init.d/
4、將腳本添加到啟動腳本

執行如下指令,在這里90表明一個優先級,越高表示執行的越晚
cd /etc/init.d/ sudo update-rc.d start_test.sh defaults 90
5、移除Ubuntu開機腳本
cd /etc/init.d sudo update-rc.d -f start_test.sh remove
6、通過sysv-rc-conf來管理上面啟動服務的啟動級別等
sudo sysv-rc-conf
7、update-rc.d的詳細參數

使用update-rc.d命令需要指定腳本名稱和一些參數,它的格式是這樣的(需要在 root 權限下):
update-rc.d [-n] [-f] <basename> remove update-rc.d [-n] <basename> defaults

 


update-rc.d [-n] <basename> disable|enable [S|2|3|4|5] update-rc.d <basename>
start|stop <NN> <runlevels> -n: not really -f: force 其中: •
disable|enable:代表腳本還在/etc/init.d中,並設置當前狀態是手動啟動還是自動啟動。 •start
|stop:代表腳本還在/etc/init.d中,開機,並設置當前狀態是開始運行還是停止運行。(啟用后可配置開始運行與否) •
NN:是一個決定啟動順序的兩位數字值。(例如90大於80,因此80對應的腳本先啟動或先停止) • runlevels:則指定了運行級別。
實例:

(1)、添加一個新的啟動腳本sample_init_script,並且指定為默認啟動順序、默認運行級別(注意:首先要有實際的文件存在於/etc/init.d,即若文件/etc/init.d/sample_init_script不存在,則該命令不會執行):
update-rc.d sample_init_script defaults
上一條命令等效於(中間是一個英文句點符號):
update-rc.d sample_init_script start 20 2 3 4 5 . stop 20 0 1 6
(2)、安裝一個啟動腳本sample_init_script,指定默認運行級別,但啟動順序為50:
update-rc.d sample_init_script defaults 50
(3)、安裝兩個啟動腳本A、B,讓A先於B啟動,后於B停止:
update-rc.d A 10 40
update-rc.d B 20 30
(4)、刪除一個啟動腳本sample_init_script,如果腳本不存在則直接跳過:
update-rc.d -f sample_init_script remove

這一條命令實際上做的就是一一刪除所有位於/etc/rcX.d目錄下指向/etc/init.d中sample_init_script的鏈接(可能存在多個鏈接文件),update-rc.d只不過簡化了這一步驟。
(5)禁止Apache/MySQL相關組件開機自啟:
update-rc.d -f apache2 remove
update-rc.d -f mysql remove

8、服務的啟動停止狀態

通過service,比如
sudo service xxx status sudo service xxx start sudo service xxx stop sudo
service xxx restart
9、查看全部服務列表
sudo service --status-all

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM