建議在Solaris 10或更高版本中使用SMF,但在早期版本中,您需要在/etc/init.d中創建一個init腳本,並從rcX.d目錄鏈接到該腳本。下面是一個init腳本用於啓動rsync進程一個最基本的例子:
#!/sbin/sh
startcmd() {
/usr/local/bin/rsync --daemon # REPLACE WITH YOUR COMMANDS
}
stopcmd() {
pkill -f "/usr/local/bin/rsync --daemon" # REPLACE WITH YOUR COMMANDS
}
case "$1" in
'start')
startcmd
;;
'stop')
stopcmd
;;
'restart')
stopcmd
sleep 1
startcmd
;;
*)
echo "Usage: $0 { start | stop | restart }"
exit 1
;;
esac
創建一個鏈接到每個rcX.d目錄的腳本(繼「S」 /「K」慣例)。
ln rsync /etc/rc3.d/S91rsync
for i in `ls -1d /etc/rc*.d | grep -v 3`; do ln rsync $i/K02rsync; done
請參閱每個rcX.d目錄中的自述文件,並檢查init.d的手冊頁。這是一個有點手冊頁的:
在RC文件名.D目錄的形式爲 [SK] nn,其中S表示啓動這項工作的,K表示 殺死這個作業,nn是用於查殺的相對序列號或開始工作的 。
當進入一個狀態(init S,0,2,3等)時,rc [S0-6]腳本 在/etc/rc[S0-6].d中執行前綴爲K 後跟那些以S開頭的腳本。在/ etc/rc [S0-6]目錄之一中執行每個 腳本時,/ sbin/rc [S0-6] 腳本會傳遞一個參數。對於前綴爲K的腳本,參數'stop' 傳遞參數'start',前綴爲S的腳本 的參數'start'。將相同序列 編號應用於多個腳本沒有任何壞處。
我正在使用OpenSolaris。感謝您的信息,我會檢查您發佈的鏈接。 – 2008-11-13 09:54:28