欢迎来到天天文库
浏览记录
ID:33875689
大小:222.06 KB
页数:30页
时间:2019-03-01
《Debugging IPC with shell commands.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、0132198576_Fusco_c08.qxd2/13/071:40PMPage4158DebuggingIPCwithShellCommands8.1IntroductionInthischapter,Ilookattechniquesandcommandsyoucanusefromtheshellfordebugginginterprocesscommunication(IPC).Whenyouaredebuggingcommu-nicationbetweenprocesses,it’salwaysnicetohaveaneutralthirdpartyto
2、intervenewhenthingsgowrong.8.2ToolsforWorkingwithOpenFilesProcessesthatleavefilesopencancauseproblems.Filedescriptorscanbe“leaked”likememory,forexample,consumingresourcesunnecessarily.Eachprocesshasafinitenumberoffiledescriptorsitmaykeepopen,soifsomebrokencodecontin-uestoopenfiledescr
3、iptorswithoutclosingthem,eventuallyitwillfailwithanerrnovalueofEMFILE.Ifyouhavesomethoughtfulerrorhandlinginyourcode,itwillbeobviouswhathashappened.Butthenwhat?4150132198576_Fusco_c08.qxd2/13/071:40PMPage416416Chapter8•DebuggingIPCwithShellCommandsTheprocfsfilesystemisveryusefulfordeb
4、uggingsuchproblems.Youcanseealltheopenfilesofaparticularprocessinthedirectory/proc/PID/fd.Eachopenfilehereshowsupasasymboliclink.Thenameofthelinkisthefiledescriptornumber,andthelinkpointstotheopenfile.Followingisanexample:$sttytostopForcebackgroundtasktostoponoutput.$echohello
5、cat~/.b
6、ashrc2>/dev/null&Runcatinthebackground.[1]16894It’sstopped.$ls-l/proc/16894/fdLet’sseewhatfilesithasopen.total4lr-x------1johnjohn64Apr912:150->pipe:[176626]lrwx------1johnjohn64Apr912:151->/dev/pts/2l-wx------1johnjohn64Apr912:152->/dev/nulllr-x------1johnjohn64Apr912:153->/home/john
7、/.bashrcHere,Ipipedtheoutputofechotothecatcommand,whichshowsupasapipeforfiledescriptorzero(standardinput).Thestandardoutputpointstothecurrentterminal,andIredirectedthestandarderror(filedescriptor2)to/dev/null.Finally,thefileIamtryingtoprintshowsupinfiledescriptor3.Allthisshowsfairlycl
8、earlyintheoutput.8.2.1lsofYoucanseeamorecomprehensivelistingbyusingthelsofcommand.Withnoarguments,lsofwillshowallopenfilesinthesystem,whichcanbeoverwhelm-ing.Eventhen,itwillshowyouonlywhatyouhavepermissiontosee.Youcanrestrictoutputtoasingleprocesswiththe-poption,asfollows:$lsof-p16894
9、COMMA
此文档下载收益归作者所有