有時候我們需要linux系統在開機的時候自動載入某些指令碼或系統服務。在解問題之前先來看看linux的啟動流程。
主要順序就是:
1. 載入核心
2. 啟動初始化程序
3. 確定執行級別
4. 載入開機啟動程式
5. 使用者登入
啟動流程的具體細節可以看看linux 的啟動流程
第4步載入啟動程式其實是兩步:
init程序逐一載入開機啟動程式,其實就是執行指定目錄裡的啟動指令碼。
在執行完指定目錄裡面的程式後init程序還會去執行/etc/rc.local 這個指令碼。
ps:「指定目錄」是指在第3步中設定的執行級別對應的目錄。
要完成我們的需求,我們使用第4步中的任意一種方式都可以。
下面分別就是這兩種方式的具體實現:
1. 編寫指令碼autostart.sh(這裡以開機啟動redis服務為例),指令碼內容如下:
#!/bin/sh指令碼第一行 「#!/bin/sh」 告訴系統使用的shell;#chkconfig:
2345
8090
#description:開機自動啟動的指令碼程式
# 開啟redis服務 埠為6379
/usr/local/service/redis-2.8.3/src/redis-server --port 6379 &
指令碼第二行 「#chkconfig: 2345 80 90」 表示在2/3/4/5執行級別啟動,啟動序號(s80),關閉序號(k90);
指令碼第三行 表示的是服務的描述資訊
注意: 第二行和第三行必寫,負責會出現如「服務 autostart.sh 不支援 chkconfig」這樣的錯誤。
2. 將寫好的autostart.sh指令碼移動到/etc/rc.d/init.d/目錄下
3. 給指令碼賦可執行許可權
cd /etc/rc.d/init.d/4. 新增指令碼到開機自動啟動專案中chmod +x autostart.sh
chkconfig --add autostart.sh到這裡就設定完成了,我們只需要重啟一下我們的伺服器,就能看到我們配置的redis服務已經可以開機自動啟動了。chkconfig autostart.
sh on
末尾加入如下語句
/usr/local/service/redis-2.8.3/src/redis-server --port 6379&切忌 命令列末尾要加上 [&] 符號(介紹
), 表示任務在後台執行。否則會阻塞後面新增的命令列執行。
完畢。ps:
CentOS6 5 新增開機自啟動指令碼
有時候我們需要linux系統在開機的時候自動載入某些指令碼或系統服務。在解問題之前先來看看linux的啟動流程。主要順序就是 1.載入核心 2.啟動初始化程序 3.確定執行級別 4.載入開機啟動程式 5.使用者登入 啟動流程的具體細節可以看看linux 的啟動流程 第4步載入啟動程式其實是兩步 in...
CentOS 新增開機自啟動 命令 指令碼
如果只是新增一條開機啟動的命令 chmod x etc rc.d rc.local 將命令寫到 etc rc.d rc.local 這個檔案中 reboot 一 新增開機自啟服務 在centos 7中新增開機自啟服務非常方便,只需要兩條命令 以jenkins為例 systemctl enable j...
Linux之centos7新增開機自啟動指令碼
日常運維中我們有時候會手動安裝一些軟體 服務或者指令碼,作業系統可能因為意外發生重啟,我們希望這些服務能夠在作業系統啟動的時候自動啟動或者延時啟動,這樣在系統意外重啟的情況也服務可以自動恢復執行。比如vpn客戶端,開機啟動後自動連線,只要連線成功後伺服器才可以遠端訪問。本示例以配置開機自啟動vpn客...