第1行,指定哪一種shell來解釋執行咱們的腳本,在linux下通常都推薦bash了。
第3行,腳本的名字,和這個腳本的功能簡單的說明,不是必須的,可是推薦不要省略。html
第6行,雖然前面帶#號,是註釋,但要用chkconfig命令註冊開機啓動服務器的話,該句必不可少,格式也不能錯!
# chkconfig: – 99 50 冒號的3個參數的含義:
第一位(X):是指定該腳本在哪一個系統啓動級別下運行(關於linux啓動級別將在別的博文中介紹),好比你須要在3,4,5上運行,那麼第二位就設置成345,我這裏用的是」-」,表明在2,3,4,5上都運行。
第二位(Y):系統啓動時,服務啓動順序。(須要注意的是,有的程序依賴與別的程序的話,啓動順序就要注意了,好比A程序的啓動依賴於B程序的啓動,那麼A程序的這個值必定要比B程序大。)
第三位(Z):系統終止時,服務終止順序。
當你用chkconfig添加一個自動啓動服務後,就會自動在對應的/etc/rc.d/rcX.d/下建立1個指向本啓動腳本的軟鏈接文件SYrsyncd,在別的啓動級別(好比是N)/etc/rc.d/rcN.d/KZrsyncd
按我設置的具體就會在/etc/rc.d/rc{2,3,4,5}.d/下建立S99rsyncd,在/etc/rc.d/rc{0,1,6}.d/下建立K50rsyncdlinux
第7行,該句也必不可少,理由同上,你程序的描述和間接,而非本啓動腳本。
第8行,進程名字,說的是你的程序,而非本啓動腳本,該句可省略。
第9行,設定文件路徑說明,該句可省略。
第12行,系統提供的函數文件,這裏面實現了不少函數和環境變量,好比start的時候,紅色的字顯示OK就是這個文件的功勞。web
第14行,保存退出狀態的變量,初始值爲0(在linux通常0表示成功,表示OK,非0表示異常,不OK)
shell
第15行,程序rsync所在的路徑。
bash
第16行,一個變量,初始值爲咱們程序的名字。
服務器
第17行,配置文件路徑及名字。ide
第19行,程序啓動函數,做爲一個啓動腳本必不可少。
第21,22行,判斷程序是否存在,若是不存在則異常退出腳本。
第23,24行,判斷設定文件是否存在,若是不存在則異常退出腳本。
第25行,顯示信息,這個顯示的效果依賴於12行。
第26行,啓動程序,用到的這個daemon是個函數,定義在12行的文件中,完整路徑的程序rsync和啓動參數做爲daemon的參數。
第27行,把daemon函數調用的結果保存到RETVAL裏。
第28行,判斷RETVAL值,若是是0,則表示程序啓動成功,建立lock文件。
第30行,自己這段代碼也是個函數,因此咱們也要返回,返回RETVAL的值。函數
第33行,關閉程序函數,做爲一個啓動腳本必不可少。
第35行,顯示信息,這個顯示的效果依賴於12行。
第36行,關閉程序,killproc也是定義在12行的文件中。
第37行,把killproc函數調用的結果保存到RETVAL裏。
第39行,判斷RETVAL值,若是是0,則表示程序關閉成功,刪除lock文件。
url
第44~63行,就是一個case語句塊,根據用戶傳入給啓動腳本rsyncd的參數,去調用咱們定義的start或者stop函數而已。
第57行,查看當前程序的啓動狀態,status一樣定義在12行的文件中。orm