打印消息獲取方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種打印消息獲取方法及裝置。
【背景技術(shù)】
[0002] Linux(里紐克斯)作為一種免費(fèi)使用的操作系統(tǒng),目前在產(chǎn)品開發(fā)中使用越來(lái)越 多。Linux內(nèi)核實(shí)時(shí)輸出的打印消息和普通進(jìn)程的打印消息通常只在確定的終端上顯示。 如在連接顯示器的Linux機(jī)器上,Linux內(nèi)核輸出通常會(huì)顯示到顯示器上;在嵌入式Linux 設(shè)備上,Linux內(nèi)核輸出通常會(huì)輸出到串口設(shè)備上。Linux內(nèi)核輸出的打印消息只能在本地 顯示查看,送樣導(dǎo)致的一個(gè)弊端是當(dāng)設(shè)備現(xiàn)場(chǎng)運(yùn)行過(guò)程中,Linux內(nèi)核出現(xiàn)問(wèn)題,人員必須 要趕到現(xiàn)場(chǎng)來(lái)進(jìn)行獲取打印信息,給設(shè)備維護(hù)帶來(lái)很大不便。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明要解決的技術(shù)問(wèn)題是提供一種打印消息獲取方法及裝置,用W解決現(xiàn)有技 術(shù)中Linux內(nèi)核輸出的打印消息只能在本地顯示查看的問(wèn)題。
[0004] 為解決上述技術(shù)問(wèn)題,一方面,本發(fā)明提供一種打印消息獲取方法,包括:
[0005] 獲取設(shè)備輸出的打印消息;
[0006] 將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中。
[0007] 進(jìn)一步,當(dāng)所述打印消息為里紐克斯Linux系統(tǒng)的內(nèi)核打印消息時(shí),通過(guò)Linux系 統(tǒng)提供的Syslog接口從緩存器Buffer中獲取所述內(nèi)核打印消息。
[0008] 進(jìn)一步,當(dāng)所述打印消息為里紐克斯Linux系統(tǒng)的進(jìn)程打印消息時(shí),通過(guò)每個(gè)進(jìn) 程對(duì)應(yīng)的文件打開表獲取該進(jìn)程的進(jìn)程打印消息。
[0009] 進(jìn)一步,將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中是指將所述打印消息復(fù)制到 設(shè)定的存儲(chǔ)設(shè)備中。
[0010] 進(jìn)一步,所述存儲(chǔ)設(shè)備為通用串行總線USB接口存儲(chǔ)設(shè)備。
[0011] 另一方面,本發(fā)明還提供一種打印消息獲取裝置,包括:
[0012] 打印消息獲取單元,用于獲取設(shè)備輸出的打印消息;
[0013] 重定向單元,用于將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中。
[0014] 進(jìn)一步,所述打印消息獲取單元還用于:
[0015] 當(dāng)所述打印消息為里紐克斯Linux系統(tǒng)的內(nèi)核打印消息時(shí),通過(guò)Linux系統(tǒng)提供 的Syslog接口從緩存器Buffer中獲取所述內(nèi)核打印消息。
[0016] 進(jìn)一步,所述打印消息獲取單元還用于:
[0017] 當(dāng)所述打印消息為里紐克斯Linux系統(tǒng)的進(jìn)程打印消息時(shí),通過(guò)每個(gè)進(jìn)程對(duì)應(yīng)的 文件打開表獲取該進(jìn)程的進(jìn)程打印消息。
[0018] 進(jìn)一步,所述重定向單元將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中,是指將所 述打印消息復(fù)制到設(shè)定的存儲(chǔ)設(shè)備中。
[0019] 進(jìn)一步,所述存儲(chǔ)設(shè)備為通用串行總線USB接口存儲(chǔ)設(shè)備。
[0020] 本發(fā)明有益效果如下:
[0021] 本發(fā)明提供一種獲取打印消息的方法和裝置,可W遠(yuǎn)程對(duì)設(shè)備的Linux內(nèi)核問(wèn)題 進(jìn)行定位,而不需人員到設(shè)備現(xiàn)場(chǎng),提高開發(fā)人員定位故障的效率,進(jìn)而提高維護(hù)效率,特 別是設(shè)備在偏遠(yuǎn)地區(qū),本發(fā)明的技術(shù)優(yōu)勢(shì)更明顯。
【附圖說(shuō)明】
[0022] 圖1是本發(fā)明實(shí)施例中一種打印消息獲取方法的流程圖;
[0023] 圖2是本發(fā)明實(shí)施例中一種打印消息獲取裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024] W下結(jié)合附圖W及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述 的具體實(shí)施例僅僅用W解釋本發(fā)明,并不限定本發(fā)明。
[00巧]如圖1所示,本發(fā)明實(shí)施例涉及一種打印消息獲取方法,包括:
[0026] 步驟S101,獲取設(shè)備輸出的打印消息;
[0027] 本步驟中,打印消息包括內(nèi)核打印消息和/或進(jìn)程打印消息。
[002引Linux內(nèi)核打印信息實(shí)時(shí)輸出直接調(diào)用printkO內(nèi)核函數(shù)。從內(nèi)部實(shí)現(xiàn)機(jī)理看,Linux內(nèi)核維護(hù)一個(gè)內(nèi)核實(shí)時(shí)信息輸出設(shè)備列表(console_hivers),有內(nèi)核打印信息輸 出時(shí),將遍歷送個(gè)設(shè)備列表,將內(nèi)核打印消息輸出到所有的設(shè)備中。Linux內(nèi)核會(huì)把內(nèi)核 打印消息緩存到內(nèi)部的buffer(緩存區(qū))中,為了獲取內(nèi)核的送些打印,需要從buffer中 取出來(lái)然后重定向到usb接口存儲(chǔ)設(shè)備中。Linux內(nèi)核會(huì)把內(nèi)核的打印消息緩存到內(nèi)部的 buffer中,Linux提供了syslog接口,可W非常方便地獲取到內(nèi)核打印消息。
[0029] Linux系統(tǒng)的普通進(jìn)程的打印消息是通過(guò)調(diào)用printfO函數(shù)實(shí)現(xiàn)的。缺省情況下 進(jìn)程的打印消息會(huì)輸出到標(biāo)準(zhǔn)輸出上,單板缺省的標(biāo)準(zhǔn)輸出就是串口,所W為了獲取進(jìn)程 的打印消息,需要對(duì)進(jìn)程的標(biāo)準(zhǔn)輸出進(jìn)行重定向。在Linux系統(tǒng)中,Linux內(nèi)核為系統(tǒng)中每 個(gè)進(jìn)程提供了一個(gè)文件打開表,其中文件打開表的前Η項(xiàng)0、1、2分別是標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸 出,標(biāo)準(zhǔn)錯(cuò)誤輸出。我們只關(guān)注進(jìn)程的輸出。為了獲取指定進(jìn)程的打印消息,需要啟動(dòng)所需 要的進(jìn)程,然后對(duì)進(jìn)程的標(biāo)準(zhǔn)輸出進(jìn)行重定向,W獲取進(jìn)程打印消息。
[0030] 步驟S102,將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中。
[0031] 在已經(jīng)獲取到內(nèi)核打印消息和進(jìn)程打印消息后,本步驟就是執(zhí)行具體的重定向操 作,因此,也是實(shí)現(xiàn)打印消息到usb接口存儲(chǔ)設(shè)備的關(guān)鍵步驟。
[0032] 下面,通過(guò)具體線程詳細(xì)描述本發(fā)明技術(shù)方案。為了實(shí)現(xiàn)獲取打印消息,需要啟用 幾個(gè)內(nèi)核線程:
[0033] usbscan線程負(fù)責(zé)usb打印重定向功能的開啟和關(guān)閉,該線程會(huì)掃描usb接口 存儲(chǔ)設(shè)備的根目錄下是否存在指定文件,如果存在,則啟動(dòng)usb打印重定向功能,如果不存 在,則關(guān)閉usb打印重定向功能。
[0034] synlog線程負(fù)責(zé)把內(nèi)核打印消息重定向到系統(tǒng)臨時(shí)文件中;
[0035] usbcmdscan線程負(fù)責(zé)執(zhí)行用戶指定的程序或者腳本文件,該線程會(huì)將用戶指定 的程序或者腳本文件的標(biāo)準(zhǔn)輸出重定向到系統(tǒng)臨時(shí)文件中;
[0036] usbsyn線程負(fù)責(zé)把打印消息同步到usb接口設(shè)備中,該線程周期性地把緩存在系 統(tǒng)的臨時(shí)文件同步到usb接口存儲(chǔ)設(shè)備中。
[0037] 為了能夠?qū)⒋蛴∠⒅囟ㄏ虻絬sb接口設(shè)備中,需要一個(gè)file結(jié)構(gòu),然后調(diào)用如下 的函數(shù)完成重定向操作。
[0038]
[0040] 通過(guò)W上步驟,實(shí)現(xiàn)了將Linux系統(tǒng)中打印信息輸出到usb接口存儲(chǔ)設(shè)備中,實(shí)現(xiàn) 簡(jiǎn)單,對(duì)設(shè)備進(jìn)行維護(hù)時(shí),執(zhí)行簡(jiǎn)捷,很大的方便了對(duì)設(shè)備的維護(hù),提高開發(fā)人員定位單板 故障的效率。
[0041] 如圖2所示,本發(fā)明實(shí)施例還涉及一種實(shí)現(xiàn)上述方法的打印消息獲取裝置,其特 征在于,包括:
[0042] 打印消息獲取單元201,用于獲取設(shè)備輸出的打印消息;
[0043] 重定向單元202,用于將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中。
[0044] 其中,打印消息獲取單元201還用于:
[0045] 當(dāng)所述打印消息為里紐克斯Linux系統(tǒng)的內(nèi)核打印消息時(shí),通過(guò)Linux系統(tǒng)提供 的Syslog接口從緩存器Buffer中獲取所述內(nèi)核打印消息;
[0046] 當(dāng)所述打印消息為里紐克斯Linux系統(tǒng)的進(jìn)程打印消息時(shí),通過(guò)每個(gè)進(jìn)程對(duì)應(yīng)的 文件打開表獲取該進(jìn)程的進(jìn)程打印消息。
[0047] 重定向單元202將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中,是指將所述打印消 息復(fù)制到設(shè)定的存儲(chǔ)設(shè)備中;其中,存儲(chǔ)設(shè)備為通用串行總線USB接口存儲(chǔ)設(shè)備。
[004引本發(fā)明提供一種獲取打印消息的方法和裝置,可W遠(yuǎn)程對(duì)設(shè)備的Linux內(nèi)核問(wèn)題 進(jìn)行定位,而不需人員到設(shè)備現(xiàn)場(chǎng),提高開發(fā)人員定位故障的效率,進(jìn)而提高維護(hù)效率,特 別是設(shè)備在偏遠(yuǎn)地區(qū),本發(fā)明的技術(shù)優(yōu)勢(shì)更明顯。
[0049] 盡管為示例目的,已經(jīng)公開了本發(fā)明的優(yōu)選實(shí)施例,本領(lǐng)域的技術(shù)人員將意識(shí)到 各種改進(jìn)、增加和取代也是可能的,因此,本發(fā)明的范圍應(yīng)當(dāng)不限于上述實(shí)施例。
【主權(quán)項(xiàng)】
1. 一種打印消息獲取方法,其特征在于,包括: 獲取設(shè)備輸出的打印消息; 將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中。2. 如權(quán)利要求1所述的打印消息獲取方法,其特征在于,當(dāng)所述打印消息為里紐克斯 Linux系統(tǒng)的內(nèi)核打印消息時(shí),通過(guò)Linux系統(tǒng)提供的Syslog接口從緩存器Buffer中獲取 所述內(nèi)核打印消息。3. 如權(quán)利要求1或2所述的打印消息獲取方法,其特征在于,當(dāng)所述打印消息為里紐克 斯Linux系統(tǒng)的進(jìn)程打印消息時(shí),通過(guò)每個(gè)進(jìn)程對(duì)應(yīng)的文件打開表獲取該進(jìn)程的進(jìn)程打印 消息。4. 如權(quán)利要求3所述的打印消息獲取方法,其特征在于,將所述打印消息重定向到設(shè) 定的存儲(chǔ)設(shè)備中是指將所述打印消息復(fù)制到設(shè)定的存儲(chǔ)設(shè)備中。5. 如權(quán)利要求1、2或4所述的打印消息獲取方法,其特征在于,所述存儲(chǔ)設(shè)備為通用串 行總線USB接口存儲(chǔ)設(shè)備。6. -種打印消息獲取裝置,其特征在于,包括: 打印消息獲取單元,用于獲取設(shè)備輸出的打印消息; 重定向單元,用于將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中。7. 如權(quán)利要求6所述的打印消息獲取裝置,其特征在于,所述打印消息獲取單元還用 于: 當(dāng)所述打印消息為里紐克斯Linux系統(tǒng)的內(nèi)核打印消息時(shí),通過(guò)Linux系統(tǒng)提供的Syslog接口從緩存器Buffer中獲取所述內(nèi)核打印消息。8. 如權(quán)利要求6或7所述的打印消息獲取裝置,其特征在于,所述打印消息獲取單元還 用于: 當(dāng)所述打印消息為里紐克斯Linux系統(tǒng)的進(jìn)程打印消息時(shí),通過(guò)每個(gè)進(jìn)程對(duì)應(yīng)的文件 打開表獲取該進(jìn)程的進(jìn)程打印消息。9. 如權(quán)利要求8所述的打印消息獲取裝置,其特征在于,所述重定向單元將所述打印 消息重定向到設(shè)定的存儲(chǔ)設(shè)備中,是指將所述打印消息復(fù)制到設(shè)定的存儲(chǔ)設(shè)備中。10. 如權(quán)利要求6、7或9所述的打印消息獲取裝置,其特征在于,所述存儲(chǔ)設(shè)備為通用 串行總線USB接口存儲(chǔ)設(shè)備。
【專利摘要】本發(fā)明公開了一種打印消息獲取方法及裝置,包括:獲取設(shè)備輸出的打印消息;將所述打印消息重定向到設(shè)定的存儲(chǔ)設(shè)備中。本發(fā)明可以遠(yuǎn)程對(duì)設(shè)備的Linux內(nèi)核問(wèn)題進(jìn)行定位,而不需人員到設(shè)備現(xiàn)場(chǎng),提高開發(fā)人員定位故障的效率,進(jìn)而提高維護(hù)效率,特別是設(shè)備在偏遠(yuǎn)地區(qū),本發(fā)明的技術(shù)優(yōu)勢(shì)更明顯。
【IPC分類】G06F9/44
【公開號(hào)】CN105278927
【申請(qǐng)?zhí)枴緾N201410257469
【發(fā)明人】蘇顏軍, 王春龍
【申請(qǐng)人】中興通訊股份有限公司
【公開日】2016年1月27日
【申請(qǐng)日】2014年6月11日
【公告號(hào)】WO2015188457A1