專利名稱:一種vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及vxWorks操作系統(tǒng)領(lǐng)域,具體來講是一種vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法。
背景技術(shù):
vxWorks是美國風(fēng)河公司(WindRiver)開發(fā)的一套實(shí)時(shí)嵌入式操作系統(tǒng),因其優(yōu)良的性能而廣泛的應(yīng)用在各式嵌入式設(shè)備上,尤其是EPON、GP0N、路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備;shell是vxWorks提供的命令解析器,用來直接調(diào)用系統(tǒng)各種函數(shù)及應(yīng)用。眾所周知,通常任何一款具備vxWorks操作系統(tǒng)的網(wǎng)絡(luò)設(shè)備,都具備比較完備的命令行系統(tǒng),也支持遠(yuǎn)程telnet登錄。在網(wǎng)絡(luò)設(shè)備使用過程中,經(jīng)常有問題或故障發(fā)生,在定位和處理這些問題時(shí),僅僅依靠上層命令行或網(wǎng)管很難定位和解決問題,必須進(jìn)入底層 shell。而網(wǎng)絡(luò)設(shè)備地點(diǎn)的不確定性,要求問題處理人員經(jīng)常需要遠(yuǎn)程的處理這些故障問題,因此是否支持遠(yuǎn)程(telnet)登錄設(shè)備的shell,對于處理突發(fā)問題故障顯得非常有必要。但實(shí)際情況中,大部分設(shè)備都不支持這一功能,或者需要比較復(fù)雜的輸入輸出的重定向和轉(zhuǎn)換才能實(shí)現(xiàn)這一目標(biāo),而其性能和功能則受到局限。以往遠(yuǎn)程解決故障問題的辦法是,在telnet登錄系統(tǒng)的命令行后,啟動(dòng)shell,然后將shell的輸入輸出重定向到命令行的輸入輸出上,但這里有兩個(gè)技術(shù)難題I、通過vxworks輸入輸出重定向的方法非常復(fù)雜,而且和具體命令行模塊實(shí)現(xiàn)結(jié)構(gòu)有關(guān),某些情況下本方式無法實(shí)現(xiàn)shell的重定向,也就無法通過telnet登錄shell。2、這種方式下,命令行和shell也就無法同時(shí)使用,對調(diào)試帶來一定困難。綜上所述,目前這類試圖遠(yuǎn)程telnet進(jìn)入vxWorks系統(tǒng)shell的方法問題很多,直接切換到shell模式下輸出字符輸出是無序的,無法正常使用;并且在這種模式下,連正常命令行也無法使用了。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,其命令行和shell可以同時(shí)使用,實(shí)施簡單,便于遠(yuǎn)程故障的處理及功能調(diào)試,加快遠(yuǎn)程問題的處理速度。為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是一種vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,包括如下步驟S1.在定制vxworks組件時(shí),增加Telnet服務(wù)器端口組件,并將其缺省的傳輸控制協(xié)議端口協(xié)議到另一個(gè)傳輸控制協(xié)議端口,作為telnet進(jìn)入shell使用的端口號(hào);S2.在系統(tǒng)命令行增加一條開始/結(jié)束命令,供telnet進(jìn)入或關(guān)閉shell時(shí)調(diào)用;S3. telnet登錄常規(guī)命令行后,執(zhí)行所述開始命令,開啟一個(gè)后臺(tái)shell任務(wù);通過所述命令行的登錄端口登錄到shell環(huán)境下,進(jìn)行shell操作;操作完成后,執(zhí)行所述結(jié)束命令,關(guān)閉后臺(tái)shell任務(wù)。在上述技術(shù)方案的基礎(chǔ)上,所述步驟SI中,缺省的傳輸控制協(xié)議端口繼續(xù)作為命令行的登錄端口。在上述技術(shù)方案的基礎(chǔ)上,所述步驟S3中,后臺(tái)shell任務(wù)流程為S31.系統(tǒng)判斷創(chuàng)建shell或刪除,若創(chuàng)建shell,則進(jìn)入S32 ;若刪除shell,則進(jìn)入S34 ;S32.判斷shell是否存在,若不存在,進(jìn)入S33 ;若存在,則直接結(jié)束;S33.開啟一個(gè)shell,結(jié)束;S34.刪除shell,結(jié)束。在上述技術(shù)方案的基礎(chǔ)上,所述缺省的傳輸控制協(xié)議端口號(hào)為23,另一個(gè)傳輸控制協(xié)議端口號(hào)為4001,telnet進(jìn)入shell使用的端口號(hào),命名為TELNET_SHELL_PORT。在上述技術(shù)方案的基礎(chǔ)上,所述步驟S2中開始/結(jié)束命令為[start I delete]shell,通過命令行開啟或關(guān)閉后臺(tái)shell任務(wù)。本發(fā)明的有益效果在于本發(fā)明越過系統(tǒng)的命令行,在保留telnet命令行通道的 基礎(chǔ)上,增加一條telnet通道直接指向vxworks的底層shell,使shell和命令行任務(wù)兩者互不干擾,shell和命令行可同時(shí)使用,提高了調(diào)試效率和問題定位效率,也節(jié)省遠(yuǎn)程處理的時(shí)間。
圖I本發(fā)明實(shí)施例vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法流程圖;圖2為圖I中步驟S3的后臺(tái)shell流程圖;圖3為圖I中步驟S3的telnet登錄shell的流程圖。
具體實(shí)施例方式以下結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)說明。如圖I所示,本發(fā)明vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,包括如下步驟SI.在定制vxworks組件時(shí),增加Telnet服務(wù)器端口組件,并將其缺省的TCP (Transmission Control Protocol,傳輸控制協(xié)議)端口協(xié)議到另一個(gè)TCP端口,作為telnet進(jìn)入shell使用的端口號(hào),而缺省的TCP端口繼續(xù)作為命令行的登錄端口。本實(shí)施例中,將缺省的TCP端口 23協(xié)議到端口號(hào)4001,作為telnet進(jìn)入shell使用的端口號(hào),命名為TELNET_SHELL_P0RT,缺省的TCP端口 23繼續(xù)作為命令行的登陸端口,因此shell使用的端口號(hào)和命令行的登陸端口得以區(qū)分。S2.在系統(tǒng)命令行增加一條開始/結(jié)束命令,供telnet進(jìn)入或關(guān)閉shell時(shí)調(diào)用。本實(shí)施例中該命令為[start I delete] shell,此命令的功能在于,可以通過命令行手工的開啟或關(guān)閉一個(gè)后臺(tái)shell任務(wù)。S3.如圖2所示,服務(wù)器telnet登錄常規(guī)命令行,通過TCP端口 23登錄vxWorks設(shè)備,執(zhí)行所述開始命令,即start shell命令,開啟一個(gè)后臺(tái)shell任務(wù)。服務(wù)器仍然telnet這個(gè)vxWorks設(shè)備的ip,通過所述命令行的登錄端口,即端口號(hào)為TELNET_SHELL_PORT(4001)的端口登錄到shell環(huán)境下,進(jìn)行shell操作,此時(shí),shell和命令行可以同時(shí)操作;操作完成后,在所述命令行上執(zhí)行結(jié)束命令,即delete shell命令,關(guān)閉后臺(tái)shell任務(wù),結(jié)束整個(gè)操作,同時(shí)刪除shell。其中,如圖3所示,所述后臺(tái)shell任務(wù)流程為S31.判斷創(chuàng)建shell或刪除,若創(chuàng)建shell,則進(jìn)入S32 ;若刪除shell,則進(jìn)入S34。
S32.判斷shell是否存在,若不存在,進(jìn)入S33 ;若存在,則直接結(jié)束。S33.開啟一個(gè) shell,結(jié)束。S34 刪除 shell,結(jié)束。
本發(fā)明不局限于上述實(shí)施方式,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,其特征在于,包括如下步驟 51.在定制vxworks組件時(shí),增加Telnet服務(wù)器端口組件,并將其缺省的傳輸控制協(xié)議端口協(xié)議到另一個(gè)傳輸控制協(xié)議端口,作為telnet進(jìn)入shell使用的端口號(hào); 52.在系統(tǒng)命令行增加一條開始/結(jié)束命令,供telnet進(jìn)入或關(guān)閉shell時(shí)調(diào)用; 53.telnet登錄常規(guī)命令行后,執(zhí)行所述開始命令,開啟一個(gè)后臺(tái)shell任務(wù);通過所述命令行的登錄端口登錄到shell環(huán)境下,進(jìn)行shell操作;操作完成后,執(zhí)行所述結(jié)束命令,關(guān)閉后臺(tái)shell任務(wù)。
2.如權(quán)利要求I所述的vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,其特征在于所述步驟SI中,缺省的傳輸控制協(xié)議端口繼續(xù)作為命令行的登錄端口。
3.如權(quán)利要求I所述的vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,其特征在于所述步驟S3中,后臺(tái)shell任務(wù)流程為 531.系統(tǒng)判斷創(chuàng)建shell或刪除,若創(chuàng)建shell,則進(jìn)入S32;若刪除shell,則進(jìn)入S34 ; 532.判斷shell是否存在,若不存在,進(jìn)入S33;若存在,則直接結(jié)束; 533.開啟一個(gè)shell,結(jié)束; 534.刪除shell,結(jié)束。
4.如權(quán)利要求I所述的vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,其特征在于所述缺省的傳輸控制協(xié)議端口號(hào)為23,另一個(gè)傳輸控制協(xié)議端口號(hào)為4001, telnet進(jìn)入shell使用的端口號(hào),命名為TELNET_SHELL_PORT。
5.如權(quán)利要求I所述的vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,其特征在于所述步驟S2中開始/結(jié)束命令為[start I delete] shell,通過命令行開啟或關(guān)閉后臺(tái)shell任務(wù)。
全文摘要
一種vxWorks系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程登錄shell的方法,包括步驟S1.在vxworks組件增加Telnet服務(wù)器端口組件,將其缺省的傳輸控制協(xié)議端口協(xié)議到另一個(gè)傳輸控制協(xié)議端口,作為telnet進(jìn)入shell使用的端口號(hào);S2.在系統(tǒng)命令行增加一條開始/結(jié)束命令,供telnet進(jìn)入或關(guān)閉shell時(shí)調(diào)用;S3.telnet登錄常規(guī)命令行后,執(zhí)行開始命令,開啟一個(gè)后臺(tái)shell任務(wù);通過命令行的登錄端口登錄到shell環(huán)境下,進(jìn)行shell操作;操作完成后,執(zhí)行結(jié)束命令,關(guān)閉后臺(tái)shell任務(wù)。本發(fā)明其命令行和shell可以同時(shí)使用,便于遠(yuǎn)程故障的處理及功能調(diào)試,加快遠(yuǎn)程問題的處理速度。
文檔編號(hào)H04L29/08GK102801777SQ20121018527
公開日2012年11月28日 申請日期2012年6月6日 優(yōu)先權(quán)日2012年6月6日
發(fā)明者艾濱, 汪俊飛 申請人:烽火通信科技股份有限公司