一種設(shè)備升級方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種設(shè)備升級方法和裝置。
【背景技術(shù)】
[0002]設(shè)備上電后,先運行Boot ROM文件,初始化硬件并顯示設(shè)備的硬件參數(shù),然后運行啟動軟件包,系統(tǒng)會根據(jù)啟動軟件包列表自動判斷相應(yīng)的軟件包是否存在,如果存在是否有效。如果啟動軟件包列表中沒有Feature包/補(bǔ)丁包,則跳過Feature包/補(bǔ)丁包的判斷流程。
[0003]隨著網(wǎng)絡(luò)設(shè)備軟件功能越來越豐富,軟件所需要的內(nèi)存空間也逐漸變大,特別是當(dāng)現(xiàn)有設(shè)備存在大配置啟動文件,升級新軟件版本時,可能會出現(xiàn)內(nèi)存不足,而導(dǎo)致升級失敗,影響業(yè)務(wù);在現(xiàn)網(wǎng)中經(jīng)常會遇到版本升級切換時,出現(xiàn)問題,導(dǎo)致版本切換不成功,影響客戶業(yè)務(wù)。
[0004]目前設(shè)備升級啟動時,先進(jìn)行硬件設(shè)備驅(qū)動初始化,再進(jìn)行操作系統(tǒng)內(nèi)核態(tài)模塊啟動;當(dāng)進(jìn)行操作系統(tǒng)內(nèi)核態(tài)模塊啟動完成時進(jìn)行init進(jìn)程啟動。
[0005]在進(jìn)行init進(jìn)程啟動時,首先啟動設(shè)備相關(guān)進(jìn)程,在設(shè)備相關(guān)進(jìn)程啟動完成后,啟動業(yè)務(wù)相關(guān)進(jìn)程(業(yè)務(wù)進(jìn)程),在業(yè)務(wù)進(jìn)程啟動過程中,啟動任一業(yè)務(wù)進(jìn)程時,若遇到內(nèi)存不足時,會不斷申請內(nèi)存來完成該業(yè)務(wù)進(jìn)程的啟動,直到申請到啟動該業(yè)務(wù)進(jìn)程的內(nèi)存;當(dāng)為該業(yè)務(wù)進(jìn)程申請到內(nèi)存時,會導(dǎo)致設(shè)備的內(nèi)存不足而造成整機(jī)再次重啟。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本申請?zhí)峁┮环N設(shè)備升級方法和裝置,以解決某個業(yè)務(wù)進(jìn)程升級不成功而導(dǎo)致再次重新啟動所有進(jìn)程的問題。
[0007]為解決上述技術(shù)問題,本申請的技術(shù)方案是這樣實現(xiàn)的:
[0008]一種設(shè)備升級方法,該方法包括:
[0009]在設(shè)備升級,進(jìn)行初始化init進(jìn)程啟動時,啟動設(shè)備相關(guān)進(jìn)程;
[0010]當(dāng)所有設(shè)備相關(guān)進(jìn)程啟動完成后,使用新版本軟件依次啟動各業(yè)務(wù)進(jìn)程,針對任一業(yè)務(wù)進(jìn)程,在啟動該業(yè)務(wù)進(jìn)程后,確定該業(yè)務(wù)進(jìn)程是否啟動成功;
[0011]若確定該業(yè)務(wù)進(jìn)程未啟動成功,且進(jìn)一步確定未啟動成功的原因為內(nèi)存不足,則掛起該業(yè)務(wù)進(jìn)程,結(jié)束init進(jìn)程啟動。
[0012]—種設(shè)備升級裝置,該裝置包括:第一啟動模塊和第二啟動模塊;
[0013]所述第一啟動模塊,用于在設(shè)備升級,進(jìn)行初始化init進(jìn)程啟動時,啟動設(shè)備相關(guān)進(jìn)程;
[0014]所述第二啟動模塊,用于當(dāng)所述第一啟動模塊將所有設(shè)備相關(guān)進(jìn)程啟動完成后,使用新版本軟件依次啟動各業(yè)務(wù)進(jìn)程,針對任一業(yè)務(wù)進(jìn)程,在啟動該業(yè)務(wù)進(jìn)程后,確定該業(yè)務(wù)進(jìn)程是否啟動成功;若確定該業(yè)務(wù)進(jìn)程未啟動成功,且進(jìn)一步確定未啟動成功的原因為內(nèi)存不足,則掛起該業(yè)務(wù)進(jìn)程,結(jié)束init進(jìn)程啟動。
[0015]由上面的技術(shù)方案可知,本申請在業(yè)務(wù)進(jìn)程啟動過程中,若由于內(nèi)存不足的原因?qū)е履硞€業(yè)務(wù)進(jìn)程不能成功啟動,則掛起該業(yè)務(wù)進(jìn)程,并停止對后續(xù)業(yè)務(wù)進(jìn)程的啟動,從而能夠在某個業(yè)務(wù)進(jìn)程升級不成功時,不需要再次重新啟動所有業(yè)務(wù)進(jìn)程的情況下,完成設(shè)備升級。
【附圖說明】
[0016]圖1為本申請實施例中設(shè)備升級流程示意圖;
[0017]圖2為本申請實施例中業(yè)務(wù)進(jìn)程啟動流程不意圖;
[0018]圖3為本申請實施例中應(yīng)用于上述技術(shù)的裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面結(jié)合附圖并舉實施例,對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。
[0020]本申請實施例中提供一種設(shè)備升級方法,在進(jìn)行業(yè)務(wù)進(jìn)程啟動時,通過自檢測方式啟動,在啟動任一業(yè)務(wù)進(jìn)程時,若由于內(nèi)存不足而啟動不成功時,掛起該業(yè)務(wù)進(jìn)程,并結(jié)束設(shè)備的啟動,能夠避免設(shè)備一次啟動不成功時進(jìn)行多次啟動。
[0021]本申請實施例中一個設(shè)備在進(jìn)行設(shè)備升級時,先進(jìn)行硬件設(shè)備驅(qū)動初始化,再進(jìn)行操作系統(tǒng)內(nèi)核態(tài)模塊啟動;當(dāng)進(jìn)行操作系統(tǒng)內(nèi)核態(tài)模塊啟動完成時進(jìn)行init進(jìn)程啟動。
[0022]在進(jìn)行init進(jìn)程啟動時,首先啟動設(shè)備相關(guān)進(jìn)程,在設(shè)備相關(guān)進(jìn)程啟動完成后,再進(jìn)行業(yè)務(wù)進(jìn)程(業(yè)務(wù)相關(guān)進(jìn)程)的啟動。
[0023]本申請實施例中,設(shè)備升級啟動過程中,從硬件設(shè)備驅(qū)動初始化到設(shè)備相關(guān)進(jìn)程啟動均同現(xiàn)有實現(xiàn),在業(yè)務(wù)進(jìn)程啟動時,與現(xiàn)有實現(xiàn)不同。
[0024]下面結(jié)合附圖,詳細(xì)說明本申請實施例中如何實現(xiàn)設(shè)備升級的。
[0025]參見圖1,圖1為本申請實施例中設(shè)備升級流程示意圖。具體步驟為:
[0026]步驟101,在設(shè)備升級,進(jìn)行init進(jìn)程啟動時,設(shè)備先啟動設(shè)備相關(guān)進(jìn)程。
[0027]步驟102,當(dāng)所有設(shè)備相關(guān)進(jìn)程啟動完成后,該設(shè)備使用新版本軟件依次啟動各業(yè)務(wù)進(jìn)程,針對任一業(yè)務(wù)進(jìn)程,在啟動該業(yè)務(wù)進(jìn)程后,確定該業(yè)務(wù)進(jìn)程是否啟動成功。
[0028]當(dāng)啟動的業(yè)務(wù)進(jìn)程正常running,則確定該業(yè)務(wù)進(jìn)程啟動成功;否則,確定該業(yè)務(wù)進(jìn)程啟動不成功。
[0029]本步驟中,該設(shè)備使用新版本軟件依次啟動各業(yè)務(wù)進(jìn)程,具體包括:
[0030]該設(shè)備按照默認(rèn)的業(yè)務(wù)進(jìn)程的順序依次啟動各業(yè)務(wù)進(jìn)程;
[0031]或,按照為各業(yè)務(wù)進(jìn)程配置的優(yōu)先級從高到低的順序依次啟動各業(yè)務(wù)進(jìn)程。
[0032]本申請實施例中默認(rèn)的業(yè)務(wù)進(jìn)程順序即為預(yù)先配置的業(yè)務(wù)進(jìn)程列表,按照列表中的業(yè)務(wù)進(jìn)程的順序進(jìn)行業(yè)務(wù)進(jìn)程的啟動。
[0033]如果在具體實現(xiàn)時,為各業(yè)務(wù)進(jìn)程配置優(yōu)先級,如可以以優(yōu)先級列表的方式為各業(yè)務(wù)進(jìn)程配置優(yōu)先級,則在啟動各業(yè)務(wù)進(jìn)程時,按照優(yōu)先級從高到低的順序依次啟動各業(yè)務(wù)進(jìn)程。
[0034]通過為業(yè)務(wù)進(jìn)程配置優(yōu)先級,可以按需實現(xiàn)對業(yè)務(wù)進(jìn)程的啟動,如果所有業(yè)務(wù)進(jìn)程都啟動,會發(fā)生內(nèi)存不足,具體實現(xiàn)時為比較重要的業(yè)務(wù)進(jìn)程配置高優(yōu)先級,可以使該業(yè)務(wù)進(jìn)程被優(yōu)先啟動。
[0035]步驟103,該設(shè)備若確定該業(yè)務(wù)進(jìn)程未啟動成功,且進(jìn)一步確定未啟動成功的原因為內(nèi)存不足,則掛起該業(yè)務(wù)進(jìn)程,結(jié)束init進(jìn)程啟動。
[0036]本步驟中該設(shè)備在掛起該業(yè)務(wù)進(jìn)程時,標(biāo)記該業(yè)務(wù)進(jìn)程及后續(xù)業(yè)務(wù)進(jìn)程為不啟動進(jìn)程。
[0037]步驟102中在確定該業(yè)務(wù)進(jìn)程是否啟動成功時,若確定該業(yè)務(wù)進(jìn)程未啟動成功,且進(jìn)一步確定未啟動成功的原因為業(yè)務(wù)訪問進(jìn)程資源沖突,則掛起該業(yè)務(wù)進(jìn)程,標(biāo)記該業(yè)務(wù)進(jìn)程為不啟動進(jìn)程;并啟動后續(xù)業(yè)務(wù)進(jìn)程。若當(dāng)前業(yè)務(wù)進(jìn)程已為最后一個業(yè)務(wù)進(jìn)程,則結(jié)束init進(jìn)程啟動。
[0038]若確定該業(yè)務(wù)進(jìn)程未啟動成功,且進(jìn)一步確定未啟動成功的原因不為內(nèi)存不足且不為業(yè)務(wù)訪問進(jìn)程資源沖突,則啟動回退機(jī)制,使用舊版本軟件啟動該業(yè)務(wù)進(jìn)程,并在該進(jìn)程啟動完成后,使用新版本軟件繼續(xù)啟動其他進(jìn)程。
[0039]上述使用舊版本軟件啟動該業(yè)務(wù)進(jìn)程,具體包括:
[0040]該設(shè)備確定該業(yè)務(wù)進(jìn)程對應(yīng)的新舊版本boot包是否一致,如果是,加載舊版本system包啟動該業(yè)務(wù)進(jìn)程;否則,加載舊版本boot包和舊版本system包啟動該業(yè)務(wù)進(jìn)程。
[0041]在軟件版本升級遇到問題時,可以使用舊版本軟件啟動,盡快回復(fù)原有業(yè)務(wù)。
[0042]本申請實施例中的新版本軟件指設(shè)備當(dāng)前要使用的版本軟件,舊版本軟件指設(shè)備升級前使用的版本軟件。
[0043]下面結(jié)合附圖,詳細(xì)說明,本申請實施例中詳細(xì)描述針對一個業(yè)務(wù)進(jìn)程的具體啟動過程。
[0044]參見圖2,圖2為本申請實施例中業(yè)務(wù)進(jìn)程啟動流程示意圖。具體步驟為:
[0045]步驟201,該設(shè)備使用新版本軟件啟動任一業(yè)務(wù)進(jìn)程。
[0046]步驟202,該設(shè)備確定是否成功啟動該業(yè)務(wù)進(jìn)程,如果是,執(zhí)行步驟211 ;否則,執(zhí)行步驟203。
[0047]步驟203,該設(shè)備確定該業(yè)務(wù)進(jìn)程未啟動成功的原因是否為內(nèi)存不足,如果是,執(zhí)行步驟204 ;否則,執(zhí)行步驟205。
[0048]步驟204,該設(shè)備將該業(yè)務(wù)進(jìn)程掛起,并標(biāo)記該業(yè)務(wù)進(jìn)程和后續(xù)業(yè)務(wù)進(jìn)程為不啟動,結(jié)束本流程。
[0049]本步驟中,若該業(yè)務(wù)進(jìn)程為最后一個業(yè)務(wù)進(jìn)程,則結(jié)束該次init進(jìn)程啟動。
[0050]步驟205,該設(shè)備確定該業(yè)務(wù)進(jìn)程未啟動成功的原因是否為業(yè)務(wù)訪問進(jìn)程資源沖突,如果是,執(zhí)行步驟206 ;否則,執(zhí)行步驟207。
[0051]步驟206,該設(shè)備掛起該進(jìn)程,標(biāo)記該業(yè)務(wù)進(jìn)程為不啟動進(jìn)程,并啟動后續(xù)業(yè)務(wù)進(jìn)程,結(jié)束本流程。
[0052]本步驟中,若當(dāng)前業(yè)務(wù)進(jìn)程已為最后一個業(yè)務(wù)進(jìn)程,則結(jié)束該次init進(jìn)程啟動。
[