首頁  >  文章  >  後端開發  >  Linux系統如何讓程式開機時自動啟動

Linux系統如何讓程式開機時自動啟動

小云云
小云云原創
2018-03-19 15:28:003651瀏覽

在Linux系統如何讓程式開機時自動啟動核心提示:系統的服務在開機時一般都可以自動啟動,那在linux系統下如果想要程式在開機時自動啟動怎麼辦?我們知道在windows系統「開始」-->「全部程式」-->「啟動」裡面放個捷徑就行,那Linux系統下呢? ...系統的服務在開機時一般都可以自動啟動,那在linux系統下如果想要程式在開機時自動啟動怎麼辦?我們知道在windows系統「開始」-->「所有程式」-- >「啟動」裡面放個快捷方式就行,那Linux系統下呢?

這也是比較簡單的問題,有不少的方法可以解決,這裡介紹三種方法。因為是簡單介紹,所以具體細節不是很詳細,可以透過man看看相關手冊。

一、/etc/rc.local
這是一個最簡單的方法,編輯“/etc/rc.local”,把啟動程式的shell指令輸入進去即可(要輸入指令的全路徑),類似於windows下的「啟動」。
使用指令 vi  /etc/rc.local    
然後在檔案最後一行新增要執行程式的全路徑。
例如,每次開機時要執行一個haha.sh,這個腳本放在/opt下面,那就可以在“/etc/rc.local”中加一行“/opt/./haha.sh”,或兩行“cd /opt”和“./haha.sh”。

二、crontab(類似windows的任務計畫服務)
透過crontab可以設定程式的執行時間表,例如讓程式在每天的8點,或是每個星期一的10點執行一次。
crontab -l 列出時間表;
crontab -e編輯時間表;
crontab -d刪除時間表;

「-l」沒什麼好說的,就是一個查看而已;
「-e」是編輯,和vi沒什麼差別(其實就是用vi編輯一個特定文件);
「-d」基本上不用,因為它把該用戶所有的時間表都刪除了,一般都是用「-e」編輯把不要了的時間表逐行刪除;

那到底該如何編輯呢?

crontab檔案的格式是:M H D m d CMD。
一個6個字段,其中最後一個CMD就是要執行的程序,如haha.sh。
M:分鐘(0-59)
H:小時(0-23)
D:日期(1-31)
m:月份(1-12)
d:一個星期中的某天(0-6,0代表週日)

這5個時間字段用空格隔開,其值可以是一個數字,也可以用逗號隔開的多個數字(或其他) ,如果不需設置,則預設為“*”。

例如,每天的8點5分執行haha.sh,就是「5 8 * * * /opt/./haha.sh」。

好像跟「開機程式自動啟動」扯遠了,現在回歸正題。其實上面介紹的crontab的功能已經具備了開機自動啟動的能力,可以寫一個監測腳本,每5分鐘執行一次(*/5 * * * * ./haha.sh),如果程式不在了就重新啟動一次。 (*/5 )表示每5分鐘

三、註冊系統服務
作業系統自帶的服務,如ssh,ftp等等,開機都是自動啟動的,我們也可以透過這種方式讓自己開發的程式提高「身價」。

例如我想把某個已經安裝了的服務加入為系統服務,可以執行以下指令:
chkconfig --add 服務名稱         (首先,新增為系統服務,注意add前面有兩個橫槓)
 
chkconfig -leve 啟動等級服務名稱on        
(說明,3層級代表在指令列模式啟動,5層級代表在圖形介面啟動,on表示開啟)
 
chkconfig -leve 啟動等級服務名稱              
(說明,off表示關閉自啟動)
 
例如:configconfig -level 3 mysql ##也可以使用  chkconfig --add 服務名稱   來刪除系統服務
******************************** ************************************************** ********如果要查看哪些服務被加入為系統服務可以使用指令:
  ntsysv  或chkconfig --list
 
如果要查看哪些程式被加入為自啟動,可以使用指令 :
cat   /etc/rc.local    (檢視這個檔案中新增了哪些程式路徑)
************************ ************************************************** *****************

下面舉例說說,如何把一個shell腳本加入為系統服務,並跟隨系統啟動:
可以看到“ /etc/rc.d/init.d」下有很多的文件,每個文件都是可以看到內容的,其實都是一些shell腳本。
系統服務的啟動就是透過「/etc/rc.d/init.d」中的腳本檔案來實現的。我們也可以寫一個自己的腳本放在這裡。
腳本檔案的內容也很簡單,類似這個樣子(例如取個名字叫做「hahad」):
. /etc/init.d/functions
start() {        echo "Starting my process "
       cd /opt
        / #        echo "Stoped"}
寫了腳本文件之後事情還沒完,繼續完成以下幾個步驟:chmod +x haha​​d                   # 增加執行權限# campconfig --addoo  
chkconfig haha​​d on                 #設定hahad的開關(on/off)
chkconfig --list haha​​d              #就可以看到已經註冊了開始工作了開始了全部一樣工作時

#相關建議:


Linux下Redis資料庫的安裝方法與自動啟動腳本分享

nginx開機自動啟動服務

Linux自動啟動MySQL#

以上是Linux系統如何讓程式開機時自動啟動的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn