CentOS開機自動執行程式的指令碼

不淨之心發表於2013-03-27
[url]http://blog.csdn.net/jiedushi/article/details/6767445[/url]
[color=red][b]第一種方法:[/b][/color]
有些時候我們需要在伺服器裡設定一個指令碼,讓他一開機就自己啟動。方法如下:
cd /etc/init.d
vi youshell.sh #將youshell.sh修改為你自己的指令碼名
編寫自己的指令碼後儲存退出。
在編寫指令碼的時候,請先加入以下注釋
#add for chkconfig
#chkconfig: 2345 70 30
#description: the description of the shell #關於指令碼的簡短描述
#processname: servicename #第一個程式名,後邊設定自啟動的時候會用到
說明:
2345是指指令碼的執行級別,即在2345這4種模式下都可以執行,234都是文字介面,5就是圖形介面X
70是指指令碼將來的啟動順序號,如果別的程式的啟動順序號比70小(比如44、45),則指令碼需要等這些程式都啟動以後才啟動。
30是指系統關閉時,指令碼的停止順序號。
給指令碼新增上可執行許可權:
chmod +x youshell.sh
利用chkconfig命令將指令碼設定為自啟動
chkconfig --add servicename
這樣你的指令碼就可以在開機後自動執行了。
另外,在redhat裡也可以使用這個方法來實現開機自啟動。
chkconfig的使用方法
chkconfig(check config)
功能說明:檢查,設定系統的各種服務。
語  法:chkconfig
[--add][--del][--list][系統服務]或chkconfig[--level<等級代號>][系統服務][on/off/reset]
補充說明:這是RedHat公司遵循GPL規則所開發的程式,它可查詢作業系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。
引數:
 –add 增加所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述檔案內增加相關資料。
 –del 刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啟動的敘述檔案內刪除相關資料。
 –level<等級代號> 指定讀系統服務要在哪一個執行等級中開啟或關畢
1:chkconfig 命令也可以用來啟用和解除服務。chkconfig –list 命令顯示系統服務列表,以及這些服務在執行級別0到6中已被啟動(on)還是停止(off)。
chkconfig –list
chkconfig –list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2:chkconfig 還能用來設定某一服務在某一指定的執行級別內被啟動還是被停運。譬如,要在執行級別3、4、5中停運 nscd 服務,使用下面的命令:
chkconfig –level 345 nscd off
3:由 xinetd 管理的服務會立即被 chkconfig 影響。譬如,如果 xinetd 在執行,finger 被禁用,那麼執行了 chkconfig finger on 命令後,finger 就不必手工地重新啟動 xinetd 來立即被啟用。對其它服務的改變在使用 chkconfig 之後不會立即生效。必須使用service servicename start/stop/restart命令來重起服務

[color=red][b]第二種方法[/b][/color]
編輯 /etc/rc.d/rc.local檔案
格式為 程式名 程式路徑
例如 a.sh /home/a.sh

相關文章