一種自動化腳本工具的制作方法
【專利摘要】本發(fā)明提供一種自動化腳本工具,通過對依賴關系的預先設定,實現依賴的可定制化,自動對相互關聯進程按照滿足應用、功能等需求的啟動順序進行啟動,并自動檢測每階段啟動是否正常,如正常,將按照使用者預設的順序,啟動下一個進程,啟動的進程、進程數及相互關系可按照使用者的需求進行預設。腳本工具同樣可自動對相互關聯進程按照滿足應用、功能等需求的結束順序進行結束,并自動檢測每階段結束是否成功,如成功,將按照使用者預設的順序,結束下一個進程。該一種自動化腳本工具和現有技術相比,實用性強,自動化完成效率較高,易于推廣。
【專利說明】一種自動化腳本工具
【技術領域】
[0001]本發(fā)明涉及服務器計算應用及管理【技術領域】,具體的說是一種自動化腳本工具?!颈尘凹夹g】
[0002]在服務器上根據應用環(huán)境不同,會啟動各不相同的進程。大量進程中會存在各自獨立,啟動順序、結束順序各不影響的進程,同時也存在啟動順序及結束順序相互關聯,即某些進程需要在另一些進程已經啟動完畢后才可正常啟動、某些進程需要在另一些進程已經啟動完畢后才可正常關閉。一般做法,是在編寫程序時考慮進程的相互關聯性,并需要預先在代碼層做好設計及相應實現。一般方法無法對于一些沒有源碼的可執(zhí)行文件產生的進程進行相互關聯,并且在實際應用環(huán)境及需求發(fā)生變更時,需要在代碼層重新做大量的設計和編碼工作。
[0003]目前服務器上普遍采用多處理器且每處理器均是多個物理核心,單臺服務器所能承載的進程數可達到上百進程甚至更多,如果應用環(huán)境發(fā)生變化,按照一般方法需要重新在代碼層進行修改,工作量繁重,如果人工手動操作,工作量會相當大,手動操作的人為失誤也會增加。
[0004]因此,提供可定制化依賴、易用、簡化人為操作的腳本工具,就顯得非常有實際意義。
【發(fā)明內容】
[0005]本發(fā)明的技術任務是解決現有技術的不足,提供一種自動化腳本工具。
[0006]本發(fā)明的技術方案是按以下方式實現的,該一種自動化腳本工具,其實現步驟為:
1)腳本在運行時獲得當前時間戳,讀取用戶預設依賴關系及等待時間W;
2)以進程名加時間戳為名字,創(chuàng)建日志文件,并使文件處于可追加寫入的狀態(tài);
3)以運行子進程的方式啟動列表中的當前進程并立即返回腳本;
4)等待時間w后,檢測步驟3)中已啟動進程的狀態(tài),狀態(tài)可為:運行或未運行;
5)在4)中如果檢測到的狀態(tài)為未運行,則進行提示并退出腳本;如果檢測到的狀態(tài)為運行,則對預設的進程列表中下一個進程以運行子進程的方式啟動進程并立即返回腳本;
6)重復步驟3)?5),直到預設列表中的所有進程均被啟動;
7)讀取用戶預設依賴關系中進程結束列表;
8)持續(xù)檢測列表中的當前進程狀態(tài),直到狀態(tài)為未運行;
9)按照結束列表的順序,結束下一個進程,并持續(xù)檢測結束操作作用的進程狀態(tài),直到狀態(tài)為未運行;
10)重復步驟9),直到結束列表中的所有進程均被結束。
[0007]所述步驟1)中預先設定依賴關系包括一個進程啟動列表和進程結束列表,其中進程啟動列表是包含所有需要啟動的進程名,按所需啟動的先后順序排列,且相鄰的前后兩個進程,后一個進程依賴于前一個進程已經啟動,并已經在正常運行;
進程結束列表是包含所有需要啟動的進程名,按所需結束的先后順序排列,且相鄰的前后兩個進程,后一個進程依賴于前一個進程已經結束。
[0008]所述步驟1)中的等待時間用于等待進程完全啟動,該時間大于進程列表中最大啟動時間和最大結束時間的最大值。
[0009]本發(fā)明與現有技術相比所產生的有益效果是:
本發(fā)明的一種自動化腳本工具通過對依賴關系的預先設定,實現依賴的可定制化,從而在實際應用環(huán)境及需求發(fā)生變更時,進行快速變更,滿足新需求。不需要重新對代碼層進行設計和更改。實用性強,適用范圍廣泛,易于推廣。
【具體實施方式】
[0010]下面對本發(fā)明的一種自動化腳本工具作以下詳細說明。
[0011]本發(fā)明是通過設計一個腳本工具,用于自動對相互關聯進程按照滿足應用、功能等需求的啟動順序進行啟動,并自動檢測每階段啟動是否正常,如正常,將按照使用者預設的順序,啟動下一個進程,如某一階段啟動失敗或啟動后快速結束,將給出提示,如后續(xù)階段均依賴本階段進程的正常啟動及工作,腳本將提示并退出。啟動的進程、進程數及相互關系可按照使用者的需求進行預設。腳本工具同樣可自動對相互關聯進程按照滿足應用、功能等需求的結束順序進行結束,并自動檢測每階段結束是否成功,如成功,將按照使用者預設的順序,結束下一個進程,如某一階段結束進程不成功,將給出提示,如后續(xù)階段均依賴本階段進程的結束,腳本將提示并退出。本發(fā)明提供的腳本工具的具體實現步驟為:
1)腳本在運行時獲得當前時間戳,讀取用戶預設依賴關系及等待時間W。
[0012]通過系統(tǒng)函數直接得到時間戳,如不支持直接獲得,當前時間進行計算得到當前時間戳,讀入用戶預先設定的進程啟動列表,并將當前操作進程設置為進程啟動列表的首個進程。
[0013]2)以進程名加時間戳為名字,創(chuàng)建日志文件,并使文件處于可追加寫入的狀態(tài)。
[0014]3)以運行子進程的方式啟動列表中的當前進程并立即返回腳本。以運行子進程的方式啟動當前進程,操作使用非阻塞方式,這樣操作后會立即返回腳本。
[0015]4)等待時間w后,檢測步驟3)中已啟動進程的狀態(tài),狀態(tài)可為:運行或未運行;按預設,等待時間w后,檢測(3)中已啟動進程的狀態(tài)。
[0016]5)在步驟4)中如果檢測到的狀態(tài)為未運行,則進行提示并退出腳本;如果檢測到的狀態(tài)為運行,則對預設的進程列表中下一個進程以運行子進程的方式啟動進程并立即返回腳本;如檢測到的狀態(tài)為運行,則對預設的進程列表中下一個進程以運行子進程的方式啟動進程并立即返回腳本。
[0017]6)重復步驟3)?5),直到預設列表中的所有進程均被啟動,以循環(huán)的方式依次操作列表中的進程,循環(huán)結束時,所有進程均被啟動或有錯誤返回。
[0018]7)讀取用戶預設依賴關系中進程結束列表。
[0019]8)持續(xù)檢測列表中的當前進程狀態(tài),直到狀態(tài)為未運行,持續(xù)檢測使用阻塞方式操作,不立即返回,直到檢測到的狀態(tài)為未運行才返回腳本。
[0020]9)按照結束列表的順序,結束下一個進程,并持續(xù)檢測結束操作作用的進程狀態(tài),直到狀態(tài)為未運行。
[0021]10)重復步驟9),直到結束列表中的所有進程均被結束。之后關閉日志文件,腳本結束。
[0022]所述步驟1)中預先設定依賴關系包括一個進程啟動列表和進程結束列表,其中進程啟動列表是包含所有需要啟動的進程名,按所需啟動的先后順序排列,且相鄰的
前后兩個進程,后一個進程依賴于前一個進程已經啟動,并已經在正常運行。
[0023]進程結束列表是包含所有需要啟動的進程名,按所需結束的先后順序排列,且相鄰的前后兩個進程,后一個進程依賴于前一個進程已經結束。
[0024]所述步驟1)中的等待時間用于等待進程完全啟動,該時間大于進程列表中最大啟動時間和最大結束時間的最大值。
[0025]本發(fā)明為針對相互關聯進程啟動及結束的自動化腳本工具,是可用于自動開啟及結束具有相互依賴關系的進程,如兩個進程A、B,進程A需要先于進程B啟動,并且進程B的正常工作需要保證A已經啟動并正常運行,本發(fā)明可以在用戶設置進程A和進程B的啟動順序和依賴關系后,按照預設順序進行啟動,并會自動檢查進程狀態(tài),以確定預設依賴關系是否滿足,保證進程A、B均可按預設條件,正常工作。本發(fā)明不僅適用于兩個相互關聯進程,同樣適用于多個相互關聯的進程。
[0026]本發(fā)明的自動化腳本工具特點在于可對任意預設的依賴關系中的進程按其依賴進行啟動及結束,可任意定制、操作自動化
以上所述僅為本發(fā)明的實施例而已,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1.一種自動化腳本工具,其特征在于其實現步驟為:1)腳本在運行時獲得當前時間戳,讀取用戶預設依賴關系及等待時間W;2)以進程名加時間戳為名字,創(chuàng)建日志文件,并使文件處于可追加寫入的狀態(tài);3)以運行子進程的方式啟動列表中的當前進程并立即返回腳本;4)等待時間w后,檢測步驟3)中已啟動進程的狀態(tài),狀態(tài)可為:運行或未運行;5)在4)中如果檢測到的狀態(tài)為未運行,則進行提示并退出腳本;如果檢測到的狀態(tài)為運行,則對預設的進程列表中下一個進程以運行子進程的方式啟動進程并立即返回腳本;6)重復步驟3)?5),直到預設列表中的所有進程均被啟動;7)讀取用戶預設依賴關系中進程結束列表;8)持續(xù)檢測列表中的當前進程狀態(tài),直到狀態(tài)為未運行;9)按照結束列表的順序,結束下一個進程,并持續(xù)檢測結束操作作用的進程狀態(tài),直到狀態(tài)為未運行;10)重復步驟9),直到結束列表中的所有進程均被結束。
2.根據權利要求1所述的一種自動化腳本工具,其特征在于:所述步驟1)中預先設定依賴關系包括一個進程啟動列表和進程結束列表,其中進程啟動列表是包含所有需要啟動的進程名,按所需啟動的先后順序排列,且相鄰的前后兩個進程,后一個進程依賴于前一個進程已經啟動,并已經在正常運行;進程結束列表是包含所有需要啟動的進程名,按所需結束的先后順序排列,且相鄰的前后兩個進程,后一個進程依賴于前一個進程已經結束。
3.根據權利要求2所述的一種自動化腳本工具,其特征在于:所述步驟1)中的等待時間用于等待進程完全啟動,該時間大于進程列表中最大啟動時間和最大結束時間的最大值。
【文檔編號】G06F9/44GK103645898SQ201310678164
【公開日】2014年3月19日 申請日期:2013年12月13日 優(yōu)先權日:2013年12月13日
【發(fā)明者】陳博文 申請人:浪潮電子信息產業(yè)股份有限公司