核心提示:系統(tǒng)的服務(wù)在開(kāi)機(jī)時(shí)一般都可以自動(dòng)啟動(dòng),,那在linux系統(tǒng)下如果想要程序在開(kāi)機(jī)時(shí)自動(dòng)啟動(dòng)怎么辦?我們知道在 windows系統(tǒng)“開(kāi)始”-->“所有程序”-->“啟動(dòng)”里面放個(gè)快捷方式就行,,那Linux系統(tǒng)下呢,?...系統(tǒng)的服務(wù)在開(kāi)機(jī)時(shí)一般都可以自動(dòng)啟動(dòng),那在linux系統(tǒng)下如果想要程序在開(kāi)機(jī)時(shí)自動(dòng)啟動(dòng)怎么辦?我們知道在 windows系統(tǒng)“開(kāi)始”-->“所有程序”-->“啟動(dòng)”里面放個(gè)快捷方式就行,,那Linux系統(tǒng)下呢,? 這也是一個(gè)比較簡(jiǎn)單的問(wèn)題,有不少的方法可以解決,,這里介紹三種方法,。因?yàn)槭呛?jiǎn)單介紹,所以具體細(xì)節(jié)不是很詳細(xì),,可以通過(guò)man看看相關(guān)手冊(cè),。 一、/etc/rc.local 這是一個(gè)最簡(jiǎn)單的方法,,編輯“/etc/rc.local”,,把啟動(dòng)程序的shell命令輸入進(jìn)去即可(要輸入命令的全路徑),類似于windows下的“啟動(dòng)”,。 使用命令 vi/etc/rc.local 然后在文件最后一行添加要執(zhí)行程序的全路徑,。 例如,每次開(kāi)機(jī)時(shí)要執(zhí)行一個(gè)haha.sh,,這個(gè)腳本放在/opt下面,,那就可以在“/etc/rc.local”中加一行“/opt/./haha.sh”,或者兩行“cd /opt”和“./haha.sh”,。 二,、crontab(類似于windows的任務(wù)計(jì)劃服務(wù)) 通過(guò)crontab可以設(shè)定程序的執(zhí)行時(shí)間表,,例如讓程序在每天的8點(diǎn),或者每個(gè)星期一的10點(diǎn)執(zhí)行一次,。 crontab -l 列出時(shí)間表,; crontab -e編輯時(shí)間表; crontab -d刪除時(shí)間表,; “-l”沒(méi)什么可說(shuō)的,,就是一個(gè)查看而已; “-e”是編輯,,和vi沒(méi)什么差別(其實(shí)就是用vi編輯一個(gè)特定文件),; “-d”基本不用,因?yàn)樗言撚脩羲械臅r(shí)間表都刪除了,,一般都是用“-e”編輯把不要了的時(shí)間表逐行刪除,; 那到底該如何編輯呢? crontab文件的格式是:M H D m d CMD,。 一個(gè)6個(gè)字段,,其中最后一個(gè)CMD就是所要執(zhí)行的程序,如haha.sh,。 M:分鐘(0-59) H:小時(shí)(0-23) D:日期(1-31) m:月份(1-12) d:一個(gè)星期中的某天(0-6,,0代表周日) 這5個(gè)時(shí)間字段用空格隔開(kāi),其值可以是一個(gè)數(shù)字,,也可以用逗號(hào)隔開(kāi)的多個(gè)數(shù)字(或其他) ,如果不需設(shè)置,,則默認(rèn)為“*”,。 例如,每天的8點(diǎn)5分執(zhí)行haha.sh,,就是“5 8 * * * /opt/./haha.sh”,。 好像和“開(kāi)機(jī)程序自動(dòng)啟動(dòng)”扯遠(yuǎn)了,現(xiàn)在回歸正題,。其實(shí)上面介紹的crontab的功能已經(jīng)具備了開(kāi)機(jī)自動(dòng)啟動(dòng)的能力,,可以寫一個(gè)監(jiān)測(cè)腳本,每5分鐘執(zhí)行一次(*/5 * * * * ./haha.sh),,如果程序不在了就重新啟動(dòng)一次,。 三、注冊(cè)系統(tǒng)服務(wù) 操作系統(tǒng)自帶的服務(wù),,如ssh,,ftp等等,開(kāi)機(jī)都是自動(dòng)啟動(dòng)的,,我們也可以通過(guò)這種方式讓自己開(kāi)發(fā)的程序提高“身價(jià)”,。 比如我想把某個(gè)已經(jīng)安裝了的服務(wù)添加為系統(tǒng)服務(wù),,可以執(zhí)行以下命令: chkconfig --add 服務(wù)名稱 (首先,添加為系統(tǒng)服務(wù),注意add前面有兩個(gè)橫杠) chkconfig -leve 啟動(dòng)級(jí)別 服務(wù)名 on (說(shuō)明,,3級(jí)別代表在命令行模式啟動(dòng),,5級(jí)別代表在圖形界面啟動(dòng),on表示開(kāi)啟) chkconfig -leve 啟動(dòng)級(jí)別 服務(wù)名 off (說(shuō)明,,off表示關(guān)閉自啟動(dòng)) 例如:chkconfig -level 3 mysql on (說(shuō)明:讓mysql服務(wù)在命令行模式,,隨系統(tǒng)啟動(dòng)) 也可以使用 chkconfig --add 服務(wù)名稱 來(lái)刪除系統(tǒng)服務(wù) ****************************************************************************************** 如果要查看哪些服務(wù)被添加為系統(tǒng)服務(wù)可以使用命令 : ntsysv或者chkconfig --list 如果要查看哪些程序被添加為自啟動(dòng),可以使用命令 : cat /etc/rc.local (查看這個(gè)文件中添加了哪些程序路徑) ******************************************************************************************* 下面舉例說(shuō)說(shuō),,如何把一個(gè)shell腳本添加為系統(tǒng)服務(wù),,并跟隨系統(tǒng)啟動(dòng): 可以看到“/etc/rc.d/init.d”下有很多的文件,每個(gè)文件都是可以看到內(nèi)容的,,其實(shí)都是一些shell腳本,。 系統(tǒng)服務(wù)的啟動(dòng)就是通過(guò)“/etc/rc.d/init.d”中的腳本文件實(shí)現(xiàn)的。我們也可以寫一個(gè)自己的腳本放在這里,。 腳本文件的內(nèi)容也很簡(jiǎn)單,,類似于這個(gè)樣子(例如起個(gè)名字叫做“hahad”): . /etc/init.d/functions start() {undefined echo 'Starting my process ' cd /opt ./haha.sh } stop() {undefined killall haha.sh echo 'Stoped' } 寫了腳本文件之后事情還沒(méi)有完,繼續(xù)完成以下幾個(gè)步驟: chmod +x hahad #增加執(zhí)行權(quán)限 chkconfig --add hahad #把hahad添加到系統(tǒng)服務(wù)列表 chkconfig hahad on #設(shè)定hahad的開(kāi)關(guān)(on/off) chkconfig --list hahad #就可以看到已經(jīng)注冊(cè)了hahad的服務(wù) 這時(shí)候才完成了全部工作,。 |
|
來(lái)自: gearss > 《raspberry》