BBSˮľÇ廪վ¡Ã¾«»ªÇø

·¢ÐÅÈË: SuperSB (¹ÂÓ¥), ÐÅÇø: Linux        
±ê  Ìâ: [×ªÔØ]unix»·¾³¸ß¼¶±à³Ì-9 
·¢ÐÅÕ¾: BBS Ë®Ä¾Ç廪վ (Wed Mar 15 14:29:35 2000) 
 
 
 
 
·¢ÐÅÈË: taosm (128+64-->cool), ÐÅÇø: unix  
±ê  Ìâ: unix»·¾³¸ß¼¶±à³Ì--µÚ9Õ ½ø³Ì¹ØÏµ  
·¢ÐÅÕ¾: Î÷Ê®°ËBBS (Sat Mar 11 13:19:20 2000), ×ªÐÅ  
   
µÚ¾ÅÕ¡þ½ø³Ì¹ØÏµª¥  
9ª±1¡þÒýÑÔª¥  
ÔÚÉÏÒ»ÕÂÎÒÃÇÒÑÁ˽⵽½ø³ÌÖ®¼ä¾ßÓйØÏµ¡£Ê×ÏÈ£¬Ã¿¸ö½ø³ÌÓÐÒ»¸ö¸¸½ø³Ì¡£µ±×Ó½ø  
³ÌÖÕֹʱ  
£¬¸¸½ø³Ì»áµÃµ½Í¨Öª²¢ÄÜÈ¡µÃ×Ó½ø³ÌÍ˳ö״̬¡£ÔÚ8ª±6½Ú˵Ã÷waitpiclº¯Êýʱ£¬ÎÒ  
ÃÇÒ²Ìáµ½  
Á˽ø³Ì×飬ÒÔ¼°ÈçºÎµÈ´ý½ø³Ì×éÖеÄÈÎÒ»¸ö½ø³ÌÖÕÖ¹¡£ª¥  
±¾ÕµĸüÏêϸµØËµÃ÷½ø³Ì×éÒÔ¼°POSIXª±1Òý½øµÄ¶Ô»°ÆÚиÅÄî¡£ÎÒÃÇÒ²½«½éÉÜlog  
in shell(  
ÊÇÎÒÃǵǼʱΪÎÒÃǵ÷ÓõÄ)ºÍËùÓдÓlogin shellÆð¶¯µÄ½ø³ÌÖ®¼äµÄ¹ØÏµ¡£ª¥  
ÔÚ˵Ã÷ÕâЩ¹ØÏµÊ±²»¿ÉÄܲ»Ì¸¼°Ðźţ¬¶øÌ¸ÂÛÐźÅÓÖÐèÒªºÜ¶à±¾Õ½éÉܵĸÅÄî¡£Èç  
¹ûÄã²»Êì  
ϤUnixÐźţ¬Ôò¿ÉÄÜÏÈÒªä¯ÀÀһϵÚʮա£ª¤  
9ª±2¡þÖն˵Ǽª¥  
ÏÈ¿´Ò»¿´µÇ¼µ½UnixϵͳʱËùÖ´Ðеĸ÷¸ö³ÌÐò¡£ÔÚÔçÆÚµÄUnixϵͳÖУ¬ÀýÈçVersi  
on7£¬Óû§  
ÓÃÑÆÖÕ¶Ë(ͨ¹ýRS-232Á¬µ½Ö÷»ú)½øÐеǼ¡£ÖÕ¶Ë»òÕßÊÇÔڵصÄ(Ö±½ÓÁ¬½Ó)»òÕßÊÇÔ¶  
³ÌµÄ(ͨ  
¹ýµ÷ÖÆ½âµ÷Æ÷Á¬½Ó)¡£ÔÚÕâÁ½ÖÖÇé¿öÏ£¬login¶¼¾­ÓÉϵͳºËÖеÄÖÕ¶ËÉ豸Çý¶¯³ÌÐò  
¡£ÀýÈ磬  
ÔÚPDP-11Éϳ£ÓõÄÉ豸ÊÇDH-11ºÍDZ-11¡£ÒòΪÁ¬µ½Ö÷»úÉϵÄÖÕ¶ËÉ豸ÊýÒѾ­È·¶¨£¬  
ËùÒÔͬʱ  
µÄ  
loginÊýÒ²¾ÍÓÐÁËÒÑÖªµÄÉÏÏÞ¡£ÏÂÃæËµÃ÷µÄµÇ¼¹ý³ÌÊÊÓÃÓÚʹÓÃÒ»¸öRS-232Öն˵Ǡ 
¼µ½Unix  
ϵͳÖС£ª¥  
4ª±3+BSDÖն˵Ǽª¥  
µÇ¼¹ý³ÌÔÚ¹ýȥʮÎåÄêÖв¢Ã»ÓжàÉٸı䡣ϵͳ¹ÜÀíÕß´´½¨Ò»¸öͨ³£ÃûΪ£¯etc£¯  
thysµÄÎÄ  
¼þ  
£¬ÆäÖУ¬Ã¿¸öÖÕ¶ËÉ豸ÓÐÒ»ÐС£Ã¿Ò»ÐÐ˵Ã÷É豸ÃûºÍ´«µ½getty³ÌÐòµÄ²ÎÊý¡£ÕâЩ  
²ÎÊý˵Ã÷  
ÁËÖն˵IJ¨ÌØÂʵȡ£µ±ÏµÍ³×Ô¾Ùʱ£¬ÏµÍ³ºË´´½¨½ø³ÌID1£¬Ò²¾ÍÊÇinit½ø³Ì¡£init  
½ø³Ì¹©Ïµ  
ͳ½øÈë¶àÓû§×´Ì¬¡£init¶ÁÎļþ£¯etc£¯ttys,¶Ôÿһ¸öÔÊÐíµÇ¼µÄÖÕ¶ËÉ豸£¬ini  
tÓµÓÐÒ»´Î  
fork£¬ËüËùÉú³ÉµÄ×Ó½ø³ÌÔòÖ´ÐÐ(exec)³ÌÐògetty¡£ÕâÖÖÇé¿öʾÓÚͼ9ª±1ÖС£ª¥  
ͼ9ª±1 initÉú³É½ø³ÌʹÖÕ¶Ë¿ÉÓÃÓÚloginª¥  
ͼ9ª±1ÖУ¬¸÷¸ö½ø³ÌµÄʵ¼ÊÓû§IDºÍÓÐЧÓû§ID¶¼ÊÇ0(Ò²¾ÍÊÇËüÃǶ¼¾ßÓг¬¼¶Óû§  
ÌØÈ¨)¡£i  
nitÒÔ¿Õ»·¾³exec getty³ÌÐò¡£ª¥  
getty¶ÔÖÕ¶ËÉ豸µ÷ÓÃopen»­Êý¡£ÒÔ¶Á¡¢Ð´·½Ê½½«ÖÕ¶Ë´ò¿ª¡£Èç¹ûÉ豸Êǵ÷ÖÆ½âµ÷  
Æ÷£¬ÔòOpe  
n¿ÉÄÜ»áÔÚÉ豸Çý¶¯³ÌÐòÖÐÖÍÁô£¬Ö±µ½Óû§²¦ºÅµ÷ÖÆ½âµ÷Æ÷£¬²¢ÇÒÏß·±»½Óͨ¡£Ò»  
µ©É豸±»  
´ò¿ª£¬ÔòÎļþÃèÊö·û0£¬1£¬2¾Í±»ÉèÖõ½¸ÃÉ豸¡£È»ºógettyÊä³öloginÖ®ÀàµÄÐÅÏ¢  
£¬²¢µÈ´ý  
Óû§¼üÈëÓû§Ãû¡£Èç¹ûÖÕ¶ËÖ§³Ö¶àÖÖËÙ¶È£¬Ôògetty¿ÉÒÔ²âÊÔÌØÊâ×Ö·ûÒÔ±ãÊʵ±µØ  
¸ü¸ÄÖÕ¶Ë  
ËÙ¶È(²¨ÌØÂÊ)¡£¹ØÓÚgetty³ÌÐòÒÔ¼°ÓйØÊý¾ÝÎļþµÄϸ½Ú£¬Çë²Î¸ÄUnixÊֲᡣª¥  
µ±Óû§¼üÈëÁËÓû§Ãûºó£¬getty¾ÍÍê³ÉÁË¡£È»ºóËüÒÔÀàËÆÓÚÏÂÁеķ½Ê½µ÷ÓÃlogin³Ì  
Ðò£ºª¥  
execle("£¯usr£¯bin£¯login","login""-p",username,(char*)O,enup);(ÔÚgetty  
tabÎļþ  
ÖпÉÄÜ»áÓÐÒ»  
ЩѡÔñÏîʹÆäµ÷ÓÃÆäËü³ÌÐò£¬µ«ÏµÍ³Ä¬ÈÏÊÇlogin³ÌÐò¡£)initÒÔÒ»¸ö¿Õ»·¾³µ÷ÓÃg  
etty¡£get  
tyÒÔÖÕ¶ËÃû(ÀýÈçTERM=foo,ÆäÖÐÖÕ¶ËfooµÄÀàÐÍÈ¡×ÔgettytabÎļþ)ºÍÔÚgettytabÖР 
µÄ»·¾³×Ö  
·û´®Îªlogin´´½¨Ò»¸ö»·¾³(enup²ÎÊý)¡£-p±ê־֪ͨlogin±£Áô´«¸øËüµÄ»·¾³£¬Ò²¿É  
½«ÆäËü»·  
¾³×Ö·û´®¼Óµ½¸Ã»·¾³ÖУ¬µ«ÊDz»Òª´ú»»Ëü¡£Í¼9ª±2ÏÔʾÁËÔÚlogin¸Õ±»µ÷ÓúóÕâЩ  
½ø³ÌµÄ×´  
̬¡£ª¥ª¥  
ͼ9ª±2 login¸Õ±»µ÷Óúó¸÷½ø³ÌµÄ״̬ª¥  
ÒòΪinit½ø³Ì¾ßÓг¬¼¶Óû§ÓÅÏÈȨ£¬ËùÒÔͼ9ª±2ÖеÄËùÓнø³Ì¶¼Óг¬¼¶Óû§ÓÅÏÈȨ  
¡£Í¼9ª±2  
Öеײ¿Èý×µÊÇÒ»¸ö½ø³Ì£¬ËüÃǵĽø³ÌIDºÍ¸¸½ø³ÌID¶¼²»»áÒòÖ´ÐÐexec¶ø¸Ä±ä¡£ª¥  
loginµÄ¹¤×÷Ö÷ÒªÊÇ£ºÒòΪËüµÃµ½ÁËÓû§Ãû£¬ËùÒÔ¾ÍÄܵ÷ÓÃgetpwnamÈ¡µÃÏàÓ¦Óû§  
µÄ¿ÚÁî×Ö  
ÎÄ  
¼þµÇ¼ÇÏȻºóµ÷ÓÃgetpass(3)ÒÔÏÔʾÌáʾPassword£»½Ó×ŶÁÓû§¼üÈëµÄ¿ÚÁî×Ö(  
×ÔÈ»£¬½û  
Ö¹»ØÊÊÓû§¼üÈëµÄ¿ÚÁî×Ö)¡£Ëüµ÷ÓÃcrypt(3)½«Óû§¼üÈëµÄ¿ÚÁî×Öת»»³ÉÃÜÂ룬²¢  
Óë¸ÃÓû§  
¿ÚÁî×ÖÎļþÖеĵǼÇÏîµÄpw ¼£Ã£Ä££ª³£²¡½passwd×Ö¶ÎÏà±È½Ï¡£Èç¹ûÓû§¼¸´Î¼üÈë  
µÄ¿ÚÁî×Ö  
¶¼ÎÞЧ£¬Ôòlo  
ginÒÔ²ÎÊý1µ÷ÓÃexit±íʾµÇ¼¹ý³Ìʧ°Ü¡£¸¸½ø³Ì(init)Á˽⵽×Ó½ø³ÌµÄÖÕÖ¹Çé¿öºó  
£¬½«ÔٴΠ 
µ÷ÓÃfork£¬ÆäºóÓÖ¸úËæ×Åexec getty£¬¶Ô´ËÖÕ¶ËÖØ¸´ÉÏÊö¹ý³Ì¡£ª¥  
Èç¹ûÓû§ÕýÈ·µÇ¼£¬login¾Í½«µ±Ç°¹¤×÷Ŀ¼¸ü¸ÄΪ¸ÃÓû§µÄÆðʼĿ¼(chdir)¡£Ëü  
Ò²µ÷ÓÃch  
own¸Ä±ä¸ÃÖն˵ÄÊôÖ÷¹ØÏµ£¬Ê¹¸ÃÓû§³ÉΪÊôÖ÷ºÍ×éÊôÖ÷¡£½«¶Ô¸ÃÖÕ¶ËÉ豸µÄ´æÈ¡  
Ðí¿ÉȨ¸Ä  
±ä³É£ºÓû§¶Á¡¢Ð´ºÍ×éд¡£µ÷ÓÃsetgid¼°initgroupsÉèÖýø³ÌµÄ×éID¡£È»ºóÓÃleg  
inËùµÃµ½  
µÄËùÓÐÐÅÏ¢³õʼ»¯»·¾³£ºÆðʼĿ¼(HOME)¡¢shell(SHELL)¡¢Óû§Ãû(USERºÍLOGNAM  
E)¡¢ÒÔ¼°  
Ò»¸öϵͳĬÈÏ·¾¶(PATH)¡£×îºó£¬login½ø³Ì¸Ä±äΪµÇ¼Óû§µÄÓû§ID(setuid)²¢  
µ÷ÓøÃÓà 
»§µÄµÇ¼shell£¬Æä·½Ê½ÀàËÆÓÚ£ºª¥  
execl("£¯bin£¯sh","-sh",(char *)o);ª¥  
argv£Ûo£ÝµÄµÚÒ»¸ö×Ö·û'£­'ÊÇÒ»¸ö±êÖ¾£¬±íʾ¸Ãshell±»µ÷ÓÃΪµÇ¼shell¡£shel  
l¿ÉÒԲ頠
¿´´Ë×Ö·û£¬²¢ÏàÓ¦µØÐÞ¸ÄÆäÆð¶¯¹ý³Ì¡£ª¥  
loginËù×öµÄ±ÈÉÏÃæËµµÄÒª¶à¡£Ëü¿ÉÑ¡µØ´òÓ¡message-of-the-dayÎļþ£¬¼ì²éÐÂÓÊ  
¼þÒÔ¼°Æä  
ËüһЩ¹¦ÄÜ¡£µ«ÊÇ¿¼Âǵ½±¾ÊеÄÄÚÈÝ£¬ÎÒÃÇÖ÷Òª¹ØÐÄÉÏÃæËù˵µÄ¹¦ÄÜ¡£ª¥  
»ØÒäÔÚ8ª±10½ÚÖжÔsetuidº¯ÊýµÄÌÖÂÛ£¬ÒòΪsetuidÊÇÓɳ¬¼¶Óû§µ÷Óõģ¬Ëü¸ü¸Ä  
ËùÓÐÈý¸ö  
Óû§ID£ºÊµ¼Ê¡¢ÓÐЧºÍ±£´æµÄÓû§ID¡£loginÔÚ½ÏÔçʱ¼äµ÷ÓõÄsetgid¶ÔËùÓÐÈý¸ö  
×éIDÒ²ÓР 
ͬÑùЧ¹û¡£ª¥  
µ½´ËΪֹ£¬µÇ¼Óû§µÄlogin shell¿ªÊ¼ÔËÐС£Æä¸¸½ø³ÌIDÊÇinit½ø³ÌID(½ø³ÌID1  
)£¬ËùÒÔµ±  
´Ëlogin shellÖÕֹʱ£¬init»áµÃµ½Í¨Öª(½Óµ½SIGCHLDÐźÅ)£¬Ëü»á¶Ô¸ÃÖÕ¶ËÖØ¸´È«  
²¿ÉÏÊö¹ý  
³Ì¡£µÇ¼shellµÄÎļþÃèÊö·û0£¬1ºÍ2ÉèÖÃΪÖÕ¶ËÉ豸¡£Í¼9ª±3ÏÔʾÁËÕâÖÖ°²ÅÅ¡£ª¥  
   
ͼ9ª±3Öն˵Ǽ½áÊøºóµÄÓйؽøÎ»ª¥  
ÏÖÔÚ£¬login shell¶ÁÆäÆô¶¯Îļþ(Bourne shellºÍKorn shellÊÇprofile,C shell  
ÊÇCshrcºÍlogin)¡£ÕâЩÆô¶¯Îļþͨ³£¸Ä±äijЩ»·¾³±äÁ¿£¬¼ÓÉÏһЩ»·¾³±äÁ¿¡£Àý  
È磬ºÜ¶àÓû§ÉèÖÃËûÃÇ×Ô¼ºµÄPATH£¬³£³£Ìáʾʵ¼ÊÖÕ¶ËÀàÐÍ(TERM)¡£µ±Ö´ÐÐÍêÆô  
¶¯Îļþºó£¬Óû§×îºóµÃµ½shellµÄ  
Ìáʾ·û£¬²¢ÄܼüÈëÃüÁî¡£ª¤  
SVR4Öն˵Ǽª¥  
SVR4Ö§³ÖÁ½ÖÖÐγɵÄÖն˵Ǽ£º(a)getty·½Ê½£¬ÕâÓëÉÏÃæ¶Ô4ª±3£«BSDËù˵Ã÷µÄÒ»  
Ñù£¬(b)tt  
ymonµÇ¼£¬ÕâÊÇSVR4µÄÒ»ÖÖй¦ÄÜ¡£Í¨³££¬gettyÓÃÓÚ¿ØÖÆÌ¨£¬ttymonÔòÓÃÓÚÆäËü  
Öն˵ĵǠ 
¼¡£ª¥  
ttymonÊÇÃûΪSAF(Service Access Facility£¬·þÎñ´æÈ¡ÉèÊ©)µÄÒ»²¿·Ö¡£°´ÕÕ±¾ÊР 
µÄÄ¿µÄ£¬  
ÎÒÃÇÖ»¼òµ¥ËµÃ÷´Óinitµ½login shellÖ®¼ä¹¤×÷¹ý³Ì£¬×îºó½á¹ûÓëͼ9ª±3ÖÐËùʾÏà  
ËÆ¡£init  
ÊÇsac(·þÎñ´æÈ¡¿ØÖÆÆ÷)µÄÎĽø³Ì£¬sacµ÷ÓÃfork£¬È»ºóÆä×Ó½ø³Ìexec ttymon³ÌÐò  
£¬´Ëʱϵ  
ͳ  
½øÈë¶àÓû§×´Ì¬¡£ttymon¼àÊÓÁÐÓÚÅäÖÃÎļþÖеÄËùÓÐÖն˶˿ڣ¬µ±Óû§¼üÈëlogin  
Ãûʱ£¬Ëü  
µ÷ÓÃÒ»´Îfork¡£ÔÚ´ËÖ®ºó¸Ã×Ó½ø³ÌÓÖexecµÇ¼Óû§µÄlogin shell£¬ÓÚÊǵ½´ïÁËͼ  
9ª±3ÖÐËù  
ʾµÄλÖá£Ò»¸öÇø±ðÊÇlogin shellµÄ¸¸½ø³ÌÏÖÔÚÊÇttymon£¬¶øgetty loginÖУ¬l  
ogin shel  
lµÄ¸¸½ø³ÌÊÇinit¡£ª¥  
9ª±3¡þÍøÖյǼª¤  
4ª±3£«BSDÍøÂçµÇ¼ª¥  
ÔÚÉϽÚËùÊöµÄÖն˵ǼÖÐ,initÖªµÀÄÄЩÖÕ¶ËÉ豸¿ÉÓÃÀ´½øÐеǼ£¬²¢ÎªÃ¿¸öÉ豸  
Éú³ÉÒ»¸ög  
etty½ø³Ì¡£µ«ÊÇ£¬¶ÔÍøÂçµÇ¼ÔòÇé¿öÓÐËù²»Í¬£¬ËùÓеǼ¶¼ÒïÓÉϵͳºËµÄÍøÂç½çÃæ  
Çý¶¯³ÌÐò  
(ÀýÈ磺ÒÔÌ«ÍøÇý¶¯³ÌÐò)£¬ÊÂÏȲ¢²»ÖªµÀ½«»áÓжàÉÙÕâÑùµÄµÇ¼¡£²»ÊÇʹһ¸ö½ø³Ì  
µÈ´ýÿһ  
¸ö¿ÉÄܵĵǼ£¬¶øÊDZØÐëµÈ´ýÒ»¸öÍøÂçÁ¬½ÓÇëÇóµÄµ½´ï¡£ÔÚ4ª±3£«£Â£Ó£ÄÖУ¬ÓÐÒ»  
¸ö³ÆÎªin  
etdµÄ½ø³Ì(ÓÐʱ³ÆÎªInternet superserver)£¬ËüµÈ´ý´ó¶àÊýÍøÂçÁ¬½Ó¡£ÔÚ±¾ÊÐÖР 
£¬ÎÒÃǽ«  
˵Ã÷4ª±3+BSDµÄÍøÂçµÇ¼ÖÐËùÉæ¼°µÄ½ø³ÌÐòÁÐ)¡£¹ØÓÚÕâЩ½ø³ÌµÄÍøÂç³ÌÐòÉè¼Æ·½  
ÃæµÄϸ½Ú  
Çë²ÎÔÄSterens£Û1990£Ý¡£ª¥  
×÷ΪϵͳÆð¶¯µÄÒ»²¿·Ö£¬initµ÷ÓÃÒ»¸öshellÖ´ÐÐshell½Å±¾etc£¯rc¡£ÓÉ´Ëshell½Å  
±¾Æð¶¯Ò»  
¸ö¾«Áé½ø³Ìinetd¡£Ò»µ©´Ëshell½Å±¾ÖÕÖ¹£¬inetdµÄ¸¸½ø³Ì¾Í±ä³Éinit¡£inetdµÈ´ý  
TCP£¯IP  
Á¬  
½ÓÇëÇóµ½´ïÖ÷»ú£¬¶øµ±Ò»¸öÁ¬½ÓÇëÇóµ½´ïʱ£¬Ëüfork-×Ó½ø³Ì£¬È»ºó¸Ã×Ó½ø³Ìexec  
Êʵ±µÄ³Ì  
Ðò¡£ª¥  
ÎÒÃǼٶ¨µ½´ïÁËÒ»¸ö¶ÔÓÚTELNET·þÎñÆ÷µÄÒ»¸öTCPÁ¬½ÓÇëÇó¡£TELNETÊÇʹÓÃTCPЭÒé  
µÄÔ¶³ÌµÇ  
¼ӦÓóÌÐò¡£ÔÚÁíÒ»¸öÖ÷»ú(Ëüͨ¹ýijÖÖÐγɵÄÍøÂ磬Á¬½Óµ½·þÎñÆ÷Ö÷»úÉÏ)ÉϵÄÓà 
»§£¬»òÔÚ  
ͬһ¸öÖ÷»úÉϵÄÒ»¸öÓû§¼®Æð¶¯TELNET¿Í»§½ø³Ì(client)Æð¶¯µÇ¼¹ý³Ì£ºª¥  
telnet hostnamlª¥  
¸Ã¿Í»§´ò¿ªÒ»¸öµ½ÃûΪhostnameµÄÖ÷»úµÄTCPÁ¬½Ó,ÔÚhostnameÖ÷»úÉÏÆð¶¯µÄ³ÌÐò±»  
³ÆÎªTELN  
ET·þÎñÆ÷¡£È»ºó£¬¿Í»§½ø³ÌºÍ·þÎñÆ÷½ø³ÌÖ®¼äʹÓÃTELNETÓ¦ÓÃЭÒéͨ¹ýTCPÁ¬½Ó½»  
»»Êý¾Ý¡£  
Ëù·¢ÉúµÄÊÇÆð¶¯µÄÓû§ÏÖÔڵǼµ½ÁË·þÎñÆ÷½ø³ÌµÄÖ÷»ú(×ÔÈ»£¬Óû§ÐèÒªÔÚ·þÎñÆ÷  
½ø³ÌÖ÷»ú  
ÉÏÓÐÒ»¸öÓÐЧµÄÕ˺š£)ͼ9ª±4ÏÔʾÁËÔÚÖ´ÐÐTELNET·þÎñÆ÷½ø³Ì(³ÆÎªtelnetd)ÖÐËù  
Éæ¼°µÄ½ø  
³ÌÐòÁС£ª¥  
È»ºó£¬telnetd½ø³Ì´ò¿ªÒ»¸öαÖÕ¶ËÉ豸£¬²¢ÓÃforkÉú³ÉÒ»¸ö×Ó½ø³Ì(ÔÚÊ®¾ÅÕÂÖн«  
Ïêϸ˵Ã÷  
αÖÕ¶Ë¡£)¸¸½ø³Ì´¦Àíͨ¹ýÍøÂçÁ¬½ÓµÄͨÐÅ£¬×Ó½ø³ÌÔòexec login³ÌÐò¡£¸¸×Ó½ø³Ì  
ͨ¹ýαÖÕ  
¶Ë  
ÏàÁ¬½Ó¡£ÔÚµ÷ÓÃexec֮ǰ£¬×Ó½ø³ÌʹÆäÎļþÃèÊö·û0£¬1£¬2ÓëαÖÕ¶ËÏàÁ¬¡£Èç¹ûµÇ  
¼ÕýÈ·£¬l  
ogin¾ÍÖ´ÐÐÔÚ9ª±2½ÚÖÐËùÊöµÄͬÑù²½Öè-¸ü¸Äµ±Ç°¹¤×÷Ŀ¼ΪÆðʼĿ¼£¬ÉèÖõǼ  
Óû§µÄ×éI  
DºÍÓû§ID£¬ÒÔ¼°µÇ¼Óû§µÄ³õʼ»·¾³¡£È»ºóloginÓÃexec½«Æä×ÔÉí´ú»»ÎªµÇ¼Óû§  
µÄ¡£Í¼9  
ª±5ÏÔʾÁ˵½´ïÕâÒ»µãʱ½ø³Ì°²×°¡£ª¥  
ͼ9ª±4 Ö´ÐÐTELNET·þÎñÕßÖÐÉæ¼°µÄ½ø³ÌÐòÁЪ¥  
ͼ9ª±5 ÎªÍøÂçloginÉèÖÃÁËfd0,1,2ºóµÄ½ø³Ì°²ÅŪ¥  
ºÜÃ÷ÏÔ£¬ÔÚαÖÕ¶ËÉ豸Çý¶¯³ÌÐòºÍÖÕ¶Ëʵ¼ÊÓû§Ö®¼äÓкܶàÊÂÇéÔÚ½øÐп´¡£ÔÚµÚÊ®  
¾ÅÕÂÖнϠ 
ÏêϸµØËµÃ÷αÖÕ¶Ë֮ǰ£¬ÎÒÃÇ»á½éÉÜÓëÕâÖÖ°²ÅÅÏà¹ØµÄËùÓнø³Ì¡£ª¥  
ÐèÒªÀí½âµÄÖØÒªÖ®µãÊÇ£ºµ±Í¨¹ýÖÕ¶Ë(ͼ9ª±3)»òÍøÂç(ͼ9ª±5)µÇ¼ʱ£¬ÎÒÃǵõ½Ò»  
¸ölogin  
shell£¬Æä±ê×¼ÊäÈë¡¢Êä³öºÍ±ê×¼³ö´íÁ¬½Óµ½»òÕßÒ»¸öÖÕ¶ËÉ豸ÉÏ»òÕßÒ»¸öαÖÕ¶Ë  
É豸ÉÏ¡£  
ÔÚÏÂÒ»½ÚÖÐÎÒÃÇ»áÁ˽⵽ÕâÒ»login shellÊÇÒ»¸öPOSIXª±1¶Ô»°ÆÚµÄ¿ªÊ¼£¬¶ø´ËÖÕ  
¶Ë»òαÖÕ  
¶ËÔòÊǶԻ°ÆÚµÄ¿ØÖÆÖÕ¶Ë¡£ª¤  
SVR4ÍøÂçµÇ¼ª¥  
SVR4ÖÐÍøÂçµÇ¼µÄÇé¿öÓë4ª±3+BSDÖеļ¸ºõÒ»Ñù¡£Í¬ÑùʹÓÃÁËinetd·þÎñÆ÷½ø³Ì£¬  
µ«ÊÇÔÚSVR  
4  
ÖÐinetdÊÇ×÷ΪһÖÖ·þÎñÓÉ·þÎñ´æÈ¡¿ØÖÆÆ÷µ÷Óõ쬯䏏½ø³Ì²»ÊÇinit¡£×îºóµÃµ½  
µÄÓëͼ9ª±  
5ÖÐÒ»Ñù¡£ª¤  
9ª±4¡þ½ø³Ì×骥  
ÿ¸ö½ø³Ì³ýÁËÓÐÒ»½ø³ÌIDÖ®Í⣬»¹ÊôÓÚÒ»¸ö½ø³Ì×飬ÔÚµÚÊ®ÕÂÌÖÂÛÐźÅʱ»¹»áÉæ¼°  
½ø³Ì×é  
¡£ª¥  
Ò»¸ö½ø³Ì×éÊÇÒ»¸ö»ò¶à¸ö½ø³ÌµÄ¼¯ºÏ¡£Ã¿¸ö½ø³Ì×éÓÐÒ»¸öΨһµÄ½ø³Ì×éID¡£½ø³Ì×é  
IDÀàËÆÓÚ  
½ø³ÌID-ËüÊÇÒ»¸öÕýÕûÊý£¬²¢¿É´æ·ÅÔÚpid-tÊý¾ÝÀàÐÍÖС£º¯Êýgetpgrp·µ»Øµ÷Óýø  
³ÌµÄ½ø³Ì  
×éID¡£ª¥  
#include <sys£¯typesª±h>ª¥  
#include <unistdª±h>ª¥ª¥  
pid ¼£Ã£Ä££ª³£²¡½t getpgrp(void);ª¥  
·µ»Ø£ºµ÷Óýø³ÌµÄ½ø³Ì×éIDª¥  
Ôںܶ౴¿ÇÀ³ÀàµÄϵͳÖУ¬°üÀ¨4ª±3+BSD£¬ÕâÒ»º¯ÊýµÄ²ÎÊýÊÇpid£¬·µ»Ø¸Ã½ø³ÌµÄ  
½ø³Ì×é¡£  
ÉÏÃæËùʾµÄÔ­ÐͺÅPOSIXª±1°æ±¾¡£ª¥  
ÿ¸ö½ø³Ì×éÓÐÒ»¸ö×鳤½ø³Ì¡£×鳤½ø³ÌµÄ±êʶÊÇ£¬Æä½ø³Ì×éIDµÈÓÚÆä½ø³ÌID¡£ª¥  
½ø³Ì×é×鳤¿ÉÒÔ´´½¨Ò»¸ö½ø³Ì×飬´´½¨¸Ã×éÖеĽø³Ì£¬È»ºóÖÕÖ¹¡£Ö»ÒªÔÚij¸ö½ø³Ì  
×éÖÐÓÐÒ»  
¸ö½ø³Ì´æÔÚ£¬Ôò¸Ã½ø³Ì×é¾Í´æÔÚ£¬ÕâÓëÆä×鳤½ø³ÌÊÇ·ñÖÕÖ¹Î޹ء£´Ó½ø³Ì×é´´½¨¿ª  
ʼµ½ÆäÖР 
×îºóÒ»¸ö½ø³ÌÀ뿪ΪֹµÄʱ¼äÇø¼ä³ÆÎª½ø³Ì×éµÄÉúÃüÆÚ¡£ÔÚij¸ö½ø³Ì×éÖеÄ×îºóÒ»  
¸ö½ø³Ì¿É  
ÒÔÖÕÖ¹£¬»òÕ߲μÓÁíÒ»¸ö½ø³Ì×é¡£ª¥  
Ò»¸ö½ø³Ìµ÷ÓÃsetpgid¿ÉÒԲμÓÒ»¸öÏÖ´æµÄ×é»òÕß´´½¨Ò»¸öнø³Ì×é¡£(ÏÂÒ»½ÚÖн«  
˵Ã÷ÓÃse  
tsidÒ²¿ÉÒÔ´´½¨Ò»¸öеĽø³Ì×é¡£)ª¥  
#include<sys£¯typesª±h>ª¥  
#include<unistdª±h>ª¥  
int setpgid(pid ¼£Ã£Ä££ª³£²¡½t pid,pid ¼£Ã£Ä££ª³£²¡½t pgid)£»ª¥  
·µ»Ø£ºÈô³É¹¦Îª0£¬³ö´íΪ-1ª¥  
Õ⽫pid½ø³ÌµÄ½ø³Ì×éIDÉèÖÃΪpgid¡£Èç¹ûÕâÁ½¸ö²ÎÊýÏàµÈ£¬ÔòÓÉpidÖ¸¶¨µÄ½ø³Ì±ä  
³É½ø³Ì×é  
×鳤¡£ª¥  
Ò»¸ö½ø³ÌÖ»ÄÜΪËü×Ô¼º»òËüµÄ×Ó½ø³ÌÉèÖýø³Ì×éID¡£ÔÚËüµÄ×Ó½ø³Ìµ÷ÓÃÁËexecºó£¬  
Ëü¾Í²»ÔÙ  
Äܸıä¸Ã×Ó½ø³ÌµÄ½ø³Ì×éID¡£ª¥  
Èç¹ûpidÊÇ0£¬ÔòʹÓõ÷ÓÃÕߵĽø³ÌID¡£ÁíÍ⣬Èç¹ûpgidÊÇ0£¬ÔòÓÉpidÖ¸¶¨µÄ½ø³ÌI  
D±»ÓÃ×÷Ϊ  
½ø³Ì×éID¡£ª¥  
Èç¹ûϵͳ²»Ö§³Ö×÷Òµ¿ØÖÆ(ÔÚ9ª±8½Ú˵Ã÷×÷Òµ¿ØÖÆ)£¬ÄÇô¾Í²»¶¨Òå-POSIX-JOB-CO  
NTROL£¬ÔÚ  
ÕâÖÖÇé¿öÏ£¬´Ëº¯Êý³ö´í·µ»Ø£¬errnoÉèÖÃΪENOSYS¡£ª¥  
ÔÚ´ó¶àÊý×÷Òµ¿ØÖÆshellÖУ¬ÔÚforkÖ®ºóµ÷Óô˺¯Êý£¬Ê¹¸¸½ø³ÌÉèÖÃÆä×Ó½ø³ÌµÄ½ø  
³Ì×éID£¬  
ʹ×Ó½ø³ÌÉèÖÃÆä×Ô¼ºµÄ½ø³Ì×éID¡£ÕâЩµ÷ÓÃÖÐÓÐÒ»¸öÊÇÈßÓàµÄ£¬µ«ÕâÑù×ö¿ÉÒÔ±£Ö¤  
¸¸¡¢  
×Ó½ø³ÌÔÚ½øÒ»²½²Ù×÷֮ǰ£¬×Ó½ø³Ì¶¼½øÈëÁ˸ýø³Ì×é¡£Èç¹û²»ÕâÑù×öµÄ»°£¬ÄÇô¾Í  
²úÉúÒ»¸ö  
¾ºÌ¬Ìõ¼þ£¬ÒòΪËüÒÀÀµÓÚÄÇÒ»¸ö½ø³ÌÏÈÖ´ÐС£ª¥  
ÔÚÌÖÂÛÐźÅʱ£¬ÎÒÃǽ«ËµÃ÷ÈçºÎ½«Ò»¸öÐźÅË͸øÒ»¸ö½ø³Ì(ÓÉÆä½ø³ÌID±êʶ)»òË͸ø  
Ò»¸ö½ø³Ì  
×é(Óɽø³Ì×éID±êʶ)¡£ÏàÀàËÆ£¬WaitpidÔò¿É±»ÓÃÀ´µÈ´ý»òÕßÒ»¸ö½ø³Ì»òÕßÖ¸¶¨½ø  
³Ì×éÖеĠ 
Ò»¸ö½ø³Ì¡£ª¥  
9ª±5¡þ¶Ô»°ÆÚª¥  
Ò»¸ö¶Ô»°ÆÚÊÇÒ»¸ö»ò¶à¸ö½ø³Ì×éµÄ¼¯ºÏ¡£ÀýÈ磬¿ÉÒÔÓÐͼ9ª±6ÖÐËùʾµÄ°²ÅÅ¡£ÆäÖР 
£¬ÔÚÒ»¸ö  
¶Ô»°ÆÚÖÐÓÐÈý¸ö½ø³Ì×顣ͨ³£ÊÇÓÉshellµÄ¹ÜµÀÏß½«¼¸¸ö½ø³Ì±à³ÉÒ»×éµÄ¡£ÀýÈ磬  
ͼ9ª±6ÖР 
µÄ°²ÅÅ¿ÉÄÜÊÇÓÉÏÂÁÐÐÎʽµÄshellÃüÁîÐγɵģºª¥  
procl|proc2 &ª¥  
proc3|proc4|proc5ª¥  
ͼ9ª±6 ÔÚ½ø³Ì×éºÍ¶Ô»°ÆÚÖеĽø³Ì°²ÅŪ¥  
Ò»¸ö½ø³Ìµ÷ÓÃsetsiclº¯Êý¾Í¿É½¨Á¢Ò»¸öжԻ°ÆÚ¡£ª¥  
#include<sys£¯typesª±h>ª¥  
#include<unistdª±h>ª¥  
pid ¼£Ã£Ä££ª³£²¡½t setsid(void);ª¥  
·µ»Ø£ºÈô³É¹¦Îª½ø³Ì×éID£¬³ö´íΪ-1ª¥  
Èç¹ûµ÷Óô˺¯ÊýµÄ½ø³Ì²»ÊÇÒ»¸ö½ø³Ì×éµÄ×鳤£¬Ôò´Ëº¯Êý´´½¨Ò»¸öжԻ°ÆÚ£¬ËüËù  
Ôì³ÉµÄ½á¹ûÊÇ£ºª¥  
1ª±´Ë½ø³Ì±ä³É¸ÃжԻ°ÆÚµÄ¶Ô»°ÆÚÊ×½ø³Ì(¶Ô»°ÆÚÊ×½ø³ÌÊÇ´´½¨¸Ã¶Ô»°ÆÚµÄ½ø³Ì)  
¡£´Ë½ø³Ì  
ÊǸÃжԻ°ÆÚÖеÄΨһһ¸ö½ø³Ì¡£ª¥  
2ª±´Ë½ø³Ì³ÉΪһ¸öнø³Ì×éµÄ×鳤½ø³Ì¡£Ð½ø³Ì×éIDÊǴ˵÷Óýø³ÌµÄ½ø³ÌID¡£ª¥  
   
3ª±´Ë½ø³ÌûÓпØÖÆÖÕ¶Ë¡£(ÏÂÒ»½ÚÌÖÂÛ¿ØÖÆÖÕ¶Ë)¡£Èç¹ûÔÚµ÷ÓÃsetsid֮ǰ´Ë½ø³Ì  
ÓÐÒ»¸ö¿Ø  
ÖÆÖÕ¶Ë£¬ÄÇôÕâÖÖÁªÏµÒ²±»½â³ý¡£ª¥  
Èç¹û´Ëµ÷Óýø³ÌÒѾ­ÊÇÒ»¸ö½ø³Ì×éµÄ×鳤£¬Ôò´Ëº¯Êý³ö´í·µ»Ø¡£ÎªÁ˱£Ö¤²»´¦ÓÚÕâ  
ÖÖÇé¿ö£¬  
ͨ³£µÄʵ¼ùÊÇÏȵ÷ÓÃfork£¬È»ºóʹÆä¸¸½ø³ÌÖÕÖ¹£¬¶ø×Ó½ø³ÌÔò¼ÌÐø¡£ÒòΪ×Ó½ø³Ì¼Ì  
³ÐÁ˸¸½ø  
³ÌµÄ½ø³Ì×éID£¬¶øÆä½ø³ÌIDÔòÊÇз¢Ïֵģ¬Á½Õß²»¿ÉÄÜÏàµÈ£¬ËùÒÔÕâ¾Í±£Ö¤ÁË×Ó½ø  
³Ì²»ÊÇÒ»¸ö½ø³Ì×éµÄ×鳤¡£ª¥  
POSIXª±1ֻ˵µ½¶Ô»°ÆÚÊ×½ø³Ì¡£Óë½ø³ÌIDºÍ½ø³Ì×éID²»Í¬£¬¼°ÓжԻ°ÆÚID¡£ÏÔÈ»£¬  
¶Ô»°ÆÚÊ×  
½ø³ÌÊǾßÓÐΨһ½ø³ÌIDµÄµ¥¸ö½ø³Ì£¬ËùÒÔÎÒÃÇ¿ÉÒÔ½«¶Ô»°ÆÚÊ×½ø³ÌµÄ½ø³ÌIDÊÓΪ¶Ô  
»°ÆÚID¡£  
SVR4¾ÍÊÇÕâÑù´¦ÀíµÄ¡£SVIDºÍSVR4µÄsetsid(2)ÊÖ²áҳ̸µ½ÁËÒÔ´ËÖÖ·½Ê½¶¨ÒåµÄ¶Ô  
»°ÆÚID¡£  
ÕâÊÇÒ»ÖÖʵÏÖϸ½Ú£¬Ëü²»ÊÇPOSIXª±1Öж¨ÒåµÄ£¬4ª±3£«£Â£Ó£ÄÒ²²»Ö§³ÖËü¡£ª¥  
SVR4ÓÐÒ»¸ögetsidº¯Êý£¬Ëü·µ»ØÒ»¸ö½ø³ÌµÄ¶Ô»°ÆÚID¡£´Ëº¯Êý²»ÊÇPOSIXª±1µÄËùÊô  
²¿·Ö£¬4  
ª±3+BSDÒ²²»Ö§³Ö´Ëº¯Êý¡£ª¥  
9ª±6¡þ¿ØÖÆÖն˪¥  
¶Ô»°ÆÚºÍ½ø³Ì×éÓÐһЩÆäËüÌØÐÔ£ºª¥  
¡¤Ò»¸ö¶Ô»°ÆÚ¿ÉÒÔÓÐÒ»¸öµ¥¶ÀµÄ¿ØÖÆÖÕ¶Ë¡£Õâͨ³£ÊÇÎÒÃÇÔÚÆäÉϵǼµÄÖÕ¶ËÉ豸(  
ÔÚÖն˵ǼÇé¿ö)»òαÖÕ¶ËÉ豸(ÔÚÍøÂçµÇ¼Çé¿ö)¡£ª¥  
¡¤½¨Á¢Óë¿ØÖÆÖÕ¶ËÁ¬½ÓµÄ¶Ô»°ÆÚÊ×½ø³Ì£¬±»³ÆÖ®Îª¿ØÖƽø³Ì¡£ª¥  
¡¤Ò»¸ö¶Ô»°ÆÚÖеö½ø³Ì×é¿É±»·Ö³ÉÒ»¸öǰ̨½ø³Ì×éÒÔ¼°Ò»¸ö»ò¼¸¸öºó³ö½ø³Ì×é¡£ª¥  
¡¤Èç¹ûÒ»¸ö¶Ô»°ÆÚÓÐÒ»¸ö¿ØÖÆÖÕ¶Ë£¬ÔòËüÓÐÒ»¸öǰ̨½ø³Ì×飬ÆäËü½ø³Ì×éÔòΪºǫ́  
½ø³Ì×é¡£  
¡¤ÎÞÂÛºÎʱ¼üÈëÖжϼü(³£³£ÊÇDELETE»òControl-C)»òÍ˳ö¼ü(³£³£ÊÇtonforl-£Ü  
)£¬¾Í»áÔì  
³É½«ÖжÏÐźŻòÍ˳öÐźÅËÍǰ̨½ø³Ì×éµÄËùÓнø³Ì¡£ª¥  
¡¤Èç¹ûÖն˽çÃæ¼ì²âµ½µ÷ÖÆ½âµ÷Æ÷ÒѾ­ÍÑ¿ªÁ¬½Ó£¬Ôò½«¹Ò¶ÏÐźÅËÍÖÁ¿ØÖÆÕâÐ©ÌØÐÔ  
ʾÓÚͼ9  
ª±7ÖС£ª¥  
ͼ9ª±7½ø³Ì×é¡¢¶Ô»°ÆÚºÍ¿ØÖÆÖն˪¥  
ͨ³££¬ÎÒÃDz»±Øµ£ÐÄ¿ØÖÆÖÕ¶Ë--µ±ÎÒÃǵǼʱ£¬½«×Ô¶¯ÎªÎÒÃǽ¨Á¢¿ØÖÆÖÕ¶Ë¡£ª¥  
Ò»¸öϵͳÈçºÎ·¢ÏÖÒ»¸ö¿ØÖÆÖÕ¶ËÒÀÀµÓÚʵÏÖ¡£19ª±4½ÚÖн«ËµÃ÷ʵ¼Ê²½Öè¡£ª¥  
µ±¶Ô»°ÆÚÊ×½ø³Ì´ò¿ªµÚÒ»¸öÉÐδÓëÒ»¸ö¶Ô»°ÆÚÏà¹ØÁªµÄÖÕ¶ËÉ豸ʱ£¬SVR4½«´Ë×÷Ϊ  
¿ØÖÆÖÕ¶Ë  
·ÖÅ䏸´Ë¶Ô»°ÆÚ¡£Õâ¼Ù¶¨¶Ô»°ÆÚÊ×½ø³ÌÔÚµ÷ÓÃopenʱ¼°ÓÐÖ¸¶¨O-NOCTTY±êÖ¾(3ª±3  
½Ú)¡£ª¥  
µ±¶Ô»°ÆÚÊ×½ø³ÌÒÔrequest²ÎÊýΪTIOCSCTTYµ÷ÓÃioctlʱ(µÚÈý¸ö²ÎÊýÊÇ¿ÕÖ¸Õë)£¬  
4ª±3£«£Â  
£Ó£ÄΪ¶Ô»°ÆÚ·ÖÅä¿ØÖÆÖÕ¶Ë¡£ÎªÊ¹´Ëµ÷Óóɹ¦Ö´ÐУ¬´Ë¶Ô»°ÆÚ²»ÄÜÒѾ­ÓÐÒ»¸ö¿ØÖÆ  
ÖÕ¶Ë¡£(  
ͨ³£ioctlµ÷Óýô¸úÔÚsetsidµ÷ÓÃÖ®ºó£¬setsid±£Ö¤´Ë½ø³ÌÊÇÒ»¸öûÓпØÖÆÖն˵Ġ 
¶Ô»°ÆÚÊ×  
½ø³Ì¡£)4ª±3+BSDª¥  
²»Ê¹ÓÃPOSIXª±1ÖжÔopenº¯ÊýËù˵Ã÷µÄO ¼£Ã£Ä££ª³£²¡½NOCTTY±êÖ¾¡£ª¥  
ÓÐʱ²»¹Ü±ê×¼ÊäÈ룬±ê×¼Êä³öÊÇ·ñÖØÐ¶¨Ïò£¬³ÌÐò¶¼ÒªÓë¿ØÖÆÖն˽»»¥×÷Óᣱ£Ö¤  
³ÌÐò¶Áд  
¿ØÖÆÖն˵ķ½·¨ÊÇ´ò¿ªÎļþ£¯dev£¯tly£¬ÔÚϵͳºËÖУ¬´ËÌØÊâÎļþÊÇ¿ØÖÆÖն˵Äͬ  
ÒåÓï¡£×Ô  
È»£¬Èç¹û³ÌÐòûÓпØÖÆÖÕ¶Ë£¬Ôò´ò¿ª´ËÉ豸½«Ê§°Ü¡£ª¥  
µäÐ͵ÄÀý×ÓÊǶÁÒ»¸ö¿ÚÁî×ÖµÄgetpass(3)º¯Êý(×ÔÈ»£¬ÖÕ¶Ë»ØËͱ»¹Ø±Õ)¡£ÕâÒ»º¯Êý  
Óɪ©cryp  
t(1)ªª³ÌÐòµ÷Ó㬶ø´Ë³ÌÐòÔò¿ÉÓÃÓÚ¹ÜͨÏßÖС£ÀýÈ磺ª¥  
crypt <salaries | lprª¥  
Ëü½«Îļþsalaries½âÃÜ£¬È»ºó¾­ÓɹܵÀ½«Êä³öËÍÖÁ´òÓ¡¼ÙÍÑ»ú³ÌÐò¡£ÒòΪcrypt´Ó  
Æä±ê×¼Êä  
Èë¶ÁÊäÈëÎļþ£¬ËùÒÔ±ê×¼ÊäÈë²»ÄÜÓÃÓÚÊäÈë¿ÚÁî×Ö¡£µ«ÊÇ£¬cryptµÄÒ»¸öÉè¼ÆÌØÕ÷  
ÊÇÿ´ÎÔË  
Ðд˳ÌÐòʱ£¬ÎÒÃǶ¼Ó¦ÊäÈë¼ÓÃÜ¿ÚÁî×Ö£¬ÕâÑùÒ²¾Í²»ÐèÒª½«¿ÚÁî×Ö´æ·ÅÔÚÎļþÖС£  
ª¥  
ÒѾ­ÖªµÀÓÐһЩ·½·¨¿ÉÒÔÆÆÒëcrypt³ÌÐòʹÓõÄÃÜÂë¡£¹ØÓÚÃÜÂëÎļþµÄÏêϸÇé¿öÇë  
²Î¼ûGarfi  
nkelºÍSpafford £Û1991£Ý¡£ª¥  
9ª±7¡þtcgetpgrpºÍtcsetpgrpº¯Êýª¥  
ÐèÒªÓÐÒ»ÖÖ·½·¨ÓÃÆä¿ÉÒÔ֪ͨϵͳºËÄÇÒ»¸ö½ø³Ì×éÊÇǰ̨½ø³Ì×飬ÕâÑù£¬ÖÕ¶ËÉ豸  
Çý¶¯³ÌÐò  
¾ÍÄÜÁ˽⽫ÖÕ¶ËÊäÈëºÍÖն˲úÉúµÄÐźÅË͵½ºÎ´¦(ͼ9ª±7)¡£ª¥  
#include<sys£¯typesª±h>ª¥  
#include<unistdª±h>ª¥  
pid ¼£Ã£Ä££ª³£²¡½t tcgetpgrp(int filedes);ª¥  
Returns;process group ID ·µ»Ø£ºÈô³É¹¦ÎªÇ°Ì¨½ø³Ì×éID£¬³ö´íΪ-1ª¥  
·µ»Ø£ºÈô³É¹¦Îª0£¬³ö´íΪ-1ª¥  
º¯Êýtcgetpgrp·µ»ØÇ°Ì¨½ø³Ì×éID£¬ËüÓëÔÚfiledesÉÏ´ò¿ªµÄÖÕ¶ËÏà¹Ø¡£ª¥  
Èç¹û½ø³ÌÓÐÒ»¸ö¿ØÖÆÖÕ¶Ë£¬Ôò¸Ã½ø³Ì¿ÉÒÔµ÷ÓÃtcsetpgrp½«Ç°Ì¨½ø³Ì×éIDÉèÖÃΪpg  
rpid¡£pgr  
pidÖµÓ¦µ±ÊÇÔÚͬһ»Ø¶Ô»°ÆÚÖеÄÒ»¸ö½ø³Ì×éµÄID¡£filedes±ØÐëÒýÓøöԻ°ÆÚµÄ¿Ø  
ÖÆÖÕ¶Ë¡£  
ª¥  
´ó¶àÊýÓ¦ÓóÌÐò²¢²»Ö±½Óµ÷ÓÃÕâÁ½¸öº¯Êý¡£ËüÃÇͨ³£ÓÉ×÷Òµ¿ØÖÆshellµ÷Óá£Ö»ÓР 
¶¨ÒåÁË-PO  
SIX-JOB-CONTROL£¬ÕâÁ½¸öº¯Êý²ÅÊDZ»¶¨ÒåÁ˵ġ£·ñÔòËüÃdzö´í·µ»Ø¡£ª¥  
9ª±8¡þ×÷Òµ¿ØÖƪ¥  
×÷Òµ¿ØÖÆÊDZ´¿ËÀ³ÔÚ1980Äê×óÓÒ¼Óµ½UNIXµÄÒ»¸öÐÂÌØÐÔ¡£ËüÔÊÐíÎÒÃÇÔÚÒ»¸öÖÕ¶ËÉÏ  
Æð¶¯¶à¸ö  
×÷Òµ(½ø³Ì×é)£¬¿ØÖÆÄÄÒ»¸ö×÷Òµ¿ÉÒÔ´æÈ¡¸ÃÖÕ¶Ë£¬ÒÔ¼°ÄÄЩ×÷ÒµÔÚºǫ́ÔËÐС£×÷Òµ  
¿ØÖÆÒªÇó  
ÈýÖÖÐÎʽµÄÖ§³Ö£ºª¥  
1ª±Ö§³Ö×÷Òµ¿ØÖƵÄshell¡£ª¥  
2ª±ÏµÍ³ºËÖеÄÖÕ¶ËÇý¶¯³ÌÐò±ØÐëÖ§³Ö×÷Òµ¿ØÖÆ¡£ª¥  
3ª±±ØÐëÌṩ¶ÔijЩ×÷Òµ¿ØÖÆÐźŵÄÖ§³Ö¡£ª¥  
SVR3ÌṩÁËÒ»ÖÖ²»Í¬ÐÎʽµÄ×÷Òµ¿ØÖÆ£¬³ÆÎªshell²ã¡£µ«ÊÇPOSIXª±1Ñ¡ÔñÁ˱´¿ËÀ³  
ÐγɵÄ×÷  
Òµ¿ØÖÆ£¬ÕâÒ²ÊÇÎÒÃÇÔÚÕâÀïËù˵Ã÷µÄ¡£»ØÒäͼ2ª±7£¬Èç¹ûϵͳ֧³Ö×÷Òµ¿ØÖÆ£¬Ôò¶¨  
Òå³£Êý-P  
OSIX-JOB-CONTROL¡£ª¥  
FIPS151-ÒªÇóPOSIXª±1×÷Òµ¿ØÖÆ¡£ª¥  
SVR4ºÍ4ª±3+BSDÖ§³ÖPOSIXª±1×÷Òµ¿ØÖÆ¡£ª¥  
´ÓshellʹÓÃ×÷Òµ¿ØÖƹ¦ÄܽǶȹ۲죬ÎÒÃÇ¿ÉÒÔÔÚǰ̨»òºǫ́Æô¶¯Ò»¸ö×÷Òµ¡£Ò»¸ö  
×÷ÒµÖ»ÊÇ  
¼¸¸ö½ø³ÌµÄ¼¯ºÏ£¬Í¨³£ÊÇÒ»¸ö½ø³Ì¹ÜµÀ¡£ÀýÈ磺ª¥  
vi mainª±Cª¥  
ËüÔÚǰ̨Æð¶¯ÁËÖ»ÓÐÒ»¸ö½ø³Ì×é³ÉµÄÒ»¸ö×÷Òµ¡£ÏÂÃæµÄÃüÁª¥  
pr *ª±C£¯lpr &ª¥  
make all &ª¥  
ÔÚºǫ́Æð¶¯ÁËÁ½¸ö×÷Òµ¡£ÕâÁ½¸öºǫ́×÷ÒµËùµ÷ÓõĽø³Ì¶¼ÔÚºǫ́¡£ª¥  
ÕýÈçǰÊö£¬ÎÒÃÇÐèÒªÒ»¸öÖ§³Ö×÷Òµ¿ØÖƵÄshellÒÔʹÓÃÓÉ×÷Òµ¿ØÖÆÌṩµÄ¹¦ÄÜ¡£¶Ô  
ÓÚ½ÏÀϵĠ 
ϵͳ£¬ËüÃÇÊÇ·ñÖ§³Ö×÷Òµ¿ØÖƱȽ϶àÓÚ˵Ã÷¡£C shellÖ§³Ö×÷Òµ¿ØÖÆ£¬Bourne she  
llÔò²»Ö§  
³Ö  
£¬¶øKorn shellÔòÊǸöÑ¡ÔñÏËüÈ¡¾öÓÚËÞÖ÷ϵͳÊÇ·ñÖ§³Ö×÷Òµ¿ØÖÆ¡£µ«ÊÇÏÖÔÚC  
 shellÒÑ  
±»  
ÒÆÖ²µ½²¢²»Ö§³Ö×÷Òµ¿ØÖƵÄϵͳÉÏ(ÀýÈçϵͳVµÄÔçÆÚ°æ±¾)£¬¶øSVR4 Bourne shel  
lµ±ÓÃÃû×Ö  
jsh¶ø²»ÊÇshµ÷ÓÃʱÔòÖ§³Ö×÷Òµ¿ØÖÆ¡£Èç¹ûËÞÖ÷ϵͳ֧³Ö×÷Òµ¿ØÖÆ£¬ÔòKorn shell  
¼ÌÐøÖ§³Ö  
×÷Òµ¿ØÖÆ¡£ÔÚ¸÷ÖÖshellÖ®¼äµÄ²î±ð²¢²»ÏÔÖøÊ±£¬ÎÒÃǽ«Ö»ÊÇÒ»°ãµØ¶Á¼°Ö§³Ö×÷Òµ  
¿ØÖƵÄshe  
llºÍ²»Ö§³Ö×÷¿ØÖƵÄshell¡£ª¥  
µ±Æð¶¯Ò»¸öºǫ́×÷ҵʱ£¬shell¸³ÓëËüÒ»¸ö×÷Òµ±êʶ£¬²¢´òÓ¡Ò»¸ö»ò¼¸¸ö½ø³ÌID¡£  
ÏÂÃæµÄ²Ù  
×÷¹ý³ÌÏÔʾÁËKorn shellÈçºÎ´¦ÀíÕâÒ»µã¡£ª¥  
$ make all>Makeª±out &ª¥  
£Û1£Ý  1475ª¥  
$ pr *ª±c | lpr &ª¥  
£Û2£Ý 1490ª¥  
$   ¼üÈë»Ø³µª¥  
£Û2£Ý+Done pr *ª±c | lpr &ª¥  
£Û1£Ý+Done make all>Makeª±out &ª¥  
makeÊÇ×÷ÒµºÅ1£¬ËùÆð¶¯µÄ½ø³ÌIDÊÇ1475¡£ÏÂÒ»¸ö¹ÜµÀÏßÊÇ×÷ÒµºÅ2£¬ÆäµÚÒ»¸ö½ø³Ì  
µÄ½ø³ÌID  
ÊÇ1490¡£µ±×÷ÒµÒÑÍê³É¶øÇÒÎÒÃǼüÈë»Ø³µÊ±£¬shell֪ͨÎÒÃÇ×÷ÒµÒѾ­Íê³É¡£ÎÒÃÇ  
ÐèÒª¼üÈë  
»Ø³µµÄÀíÓÉÊÇ£ºÊ¹shell´òÓ¡ÆäÌáʾ·û¡£shell²¢²»ÔÚÈκÎËæÒâµÄʱ¼ä´òÓ¡ºǫ́×÷Òµ  
µÄ״̬¸Ä  
±ä-ËüÖ»ÔÚ´òÓ¡ÆäÌáʾ·û֮ǰÕâÑù×ö¡£Èç¹û²»ÕâÑù´¦Àí£¬ÔòÔÚÎÒÃÇÕýÊäÈëÒ»ÐÐʱ£¬  
ËüÒ²¿ÉÄÜ  
Êä³ö¡£ª¥  
ÎÒÃÇ¿ÉÒÔ¼üÈëÒ»¸öÓ°Ïìǰ̨×÷ÒµµÄÌØÊâ×Ö·û-¹ÒÆð¼ü(µäÐ͵ÄÊÇControl-Z)ÓëÖն˽ø  
Ðн»»¥  
×÷Ó᣼üÈë´Ë×Ö·ûʹÖÕ¶ËÇý¶¯³ÌÐò½«ÐźÅSIGTSTPËÍÖÁǰ̨½ø³Ì×éÖеÄËùÓнø³Ì£¬  
ºǫ́½ø³Ì  
×é×÷ÒµÔò²»ÊÜÓ°Ï졣ʵ¼ÊÉÏÓÐÈý¸öÌØÊâ×Ö·û¿ÉʹÖÕ¶ËÇý¶¯³ÌÐò²úÉúÐźţ¬²¢½«ËüÃÇ  
ËÍÖÁǰ̨  
½ø³Ì×飬ËüÃÇÊÇ£ºª¥  
¡¤ÖжÏ×Ö·û(µäÐ͵ÄÊÇDELETE»òControl-C)²úÉúSIGINT¡£ª¥  
¡¤Í˳ö×Ö·û(µäÐ͵ÄÊÇControl-£Ü)²úÉúSIGQUIT¡£ª¥  
¡¤¹ÒÆð×Ö·û(µäÐ͵ÄÊÇControl-Z)²úÉúSIGTSTP¡£ª¥  
ÔÚµÚʮһÕÂÖн«ËµÃ÷¿É½«ÕâÈý¸ö×Ö·û¸ü¸ÄΪÈÎÒâÆäËüËùÑ¡ÔñµÄ×Ö·û£¬ÒÔ¼°ÈçºÎʹÖÕ  
¶ËÇý¶¯³ÌÐò²»´¦ÀíÕâÐ©ÌØÊâ×Ö·û¡£ª¥  
ÖÕ¶ËÇý¶¯³ÌÐò±ØÐë´¦ÀíÓë×÷Òµ¿ØÖÆÓйصÄÁíÒ»ÖÖÇé¿ö¡£ÎÒÃÇ¿ÉÒÔÓÐÒ»¸öǰ̨×÷Òµ£¬  
Èô¸É¸öºǫ́×÷Òµ£¬ÕâЩ×÷ÖÐÄÄÒ»¸ö½ÓÊÕÎÒÃÇÔÚÖÕ¶ËÉϼüÈëµÄ×Ö·ûÄØ?Ö»ÓÐǰ̨×÷Òµ  
½ÓÊÕÖÕ¶ËÊäÈë¡£Èç¹ûºǫ́×÷ÒµÊÔͼ¶ÁÖÕ¶Ë£¬ÄÇôÕâ²¢²»ÊÇÒ»¸ö´íÎ󣬵«ÊÇÖÕ¶ËÇý¶¯  
³ÌÐò¼ì²âÕâÖÖÇé¿ö£¬²¢ÇÒ·¢ËÍÒ»¸öÌØ¶¨ÐźÅSIGTTIN¸øºǫ́×÷Òµ¡£Õâͨ³£»áÍ£Ö¹´Ëºó  
̨×÷Òµ£¬¶øÓйØÓû§Ôò»áµÃµ½ÕâÖÖÇé¿öµÄ֪ͨ£¬È»ºóÎÒÃǾͿɽ«´Ë×÷ҵתΪǰ̨  
×÷ÒµÔËÐУ¬ÓÚÊÇËü¾Í¿É¶ÁÖÕ¶Ë¡£ÏÂÁвÙ×÷¹ý³Ì  
ÏÔʾÁËÕâÒ»µã£ºª¥  
$ cat>tempª±foo & ÔÚºǫ́Æô¶¯£¬µ«½«´Ó±ê×¼ÊäÈë¶Áª¥  
£Û1£Ý 1681ª¥  
$ ¼üÈë»Ø³µª¥  
£Û1£Ý+Stopped (tty input) cat>tempª±foo &ª¥  
$ fg %1 Ê¹1ºÅ×÷Òµ³ÉΪǰ̨×÷Òµª¥  
cat>tempª±foo shell¸æËßÎÒÃÇÏÖÔÚÄÄÒ»¸ö×÷ÒµÔÚǰ̨ª¥  
hello,world ÊäÈë1ÐЪ¥  
^D ¼üÈëÎÒÃǵÄÎļþ½áÊø·ûª¥  
$ cat tempª±foo ¼üÈëÎÒÃǵÄÎļþ½áÊø·ûª¥  
hello,world ¼ì²é¸ÃÐÐÒÑËÍÈëÎļþª¥  
shellÔÚºǫ́Æð¶¯cat½ø³Ì£¬µ«Êǵ±catÊÔͼ¶ÁÆä±ê×¼ÊäÈë(¿ØÖÆÖÕ¶Ë)ʱ£¬ÖÕ¶ËÇý¶¯  
³ÌÐòÖªµÀ  
ËüÊǸöºǫ́×÷Òµ£¬ÓÚÊǽ«SIGTTINÐźÅËÍÖÁ¸Ãºǫ́×÷Òµ¡£shell¼ì²âµ½Æä×Ó½ø³ÌµÄ×´  
̬¸Ä±ä(  
»ØÒÒ8ª±6½ÚÖжÔwaitºÍwaitpidµÄÌÖÂÛ)£¬²¢Í¨ÖªÎÒÃǸÃ×÷ÒµÒѱ»Í£Ö¹¡£È»ºó£¬ÎÒÃÇ  
ÓÃshell  
µÄfgÃüÁ´ËÍ£Ö¹µÄ×÷ÒµËÍÈëǰ̨ÔËÐС£(¹ØÓÚ×÷Òµ¿ØÖÆÃüÁÀýÈçfgºÍbgµÄÏêϸ  
Çé¿ö£¬ÒÔ  
¼°±êʶ²»Í¬×÷ÒµµÄ¸÷ÖÖ·½·¨Çë²ÎÔÄÓйØshellµÄÊÖ²áÒ³¡£)ÕâÑù×öʹshell½«´Ë×÷Òµ  
תΪǰ̨  
½ø³Ì×é(tcsetpgrp)£¬²¢½«¼ÌÐøÐźÅ(SIGCONT)Ë͸ø¸Ã½ø³Ì×é¡£ÒòΪ¸Ã×÷ÒµÏÖÔÚǰ̨  
½ø³Ì×éÖР 
£¬ËùÒÔËü¿ÉÒÔ¶Á¿ØÖÆÖÕ¶Ë¡£ª¥  
Èç¹ûºǫ́×÷ÒµÊä³öµ½¿ØÖÆÖÕ¶ËÓÖ½«·¢ÉúÊ²Ã´ÄØ?ÕâÊÇÒ»¸öÎÒÃÇ¿ÉÒÔÔÊÐí»ò½ûÖ¹µÄÑ¡  
ÔñÏͨ  
³££¬ÎÒÃÇ¿ÉÒÔÓÃstly(1)ÃüÁî¸Ä±äÕâһѡÔñÏî¡£(µÚʮһÕ½«ËµÃ÷ÔÚ³ÌÐòÖÐÈçºÎ¸Ä±ä  
ÕâһѡÔñ  
Ïî)¡£ÏÂÃæÏÔʾÁËÕâÖÖ²Ù×÷¹ý³Ì£ºª¥  
$ cat tempª±foo & ÔÚºǫִ́ÐЪ¥  
£Û1£Ý 1719 ÔÚÌáʾ·ûºó³öÏÖºǫ́×÷ÒµµÄÊä³öª¥  
£Û1£Ý+Done cat tempª±foo &ª¥  
$ stty tostop Ê¹ºǫ́×÷Òµ¿ÉÄÜÏò¿ØÖÆÖÕ¶ËÊä³öª¥  
$ cat tempª±foo & ÔÚºǫ́ÔÙ´ÎÖ´ÐЪ¥  
£Û1£Ý 1721ª¥  
$ ¼üÈë»Ø³µ£¬·¢ÏÖ×÷ÒµÒÑÍ£Ö¹ª¥  
£Û1£Ý+Stopped(tty output) cat tempª±foo&ª¥  
$ fg %1 ½«Í£Ö¹µÄ×÷Òµ»Ö¸´ÎªÇ°Ì¨×÷Òµª¥  
cat tempª±foo shell¸æËßÎÒÃÇÏÖÔÚÄÄÒ»¸ö×÷ÒµÔÚǰ̨ª¥  
hello,world ¸Ã×÷ÒµµÄÊä³öª¥  
ͼ9ª±8ժ¼ÁËÎÒÃÇÒÑ˵Ã÷µÄ×÷Òµ¿ØÖƵÄijЩ¹¦ÄÜ¡£ª¥  
ͼ9ª±8 ¶ÔÓÚǰ̨¡¢ºǫ́×÷ÒµÒÔ¼°ÖÕ¶ËÇý¶¯³ÌÐòµÄ×÷Òµ¿ØÖƹ¦ÄÜÕªÒªª¥  
´©¹ýÖÕ¶ËÇý¶¯³ÌÐò¿òµÄʵÏß±íʾ£ºÖնˣɣ¯£ÏºÍÖն˲úÉúµÄÐźÅ×ÜÊÇ´Óǰ̨½ø³Ì×é  
Á¬½Óµ½Êµ  
¼ÊÖÕ¶Ë¡£¶ÔÓ¦ÓÚSIGTTOUÐźŵÄÐéÏß±íʾ£¬ºǫ́½ø³Ì×é½ø³ÌµÄÊä³ö³öÏÖÔÚÖÕ¶ËÉÏÊÇ  
¸öÑ¡ÔñÏî  
¡£ª¥  
ÊÇ·ñÐèÒª×÷Òµ¿ØÖÆ£ºÕâÊÇÒ»¸öÓкܶàÕùÂÛµÄÎÊÌâ¡£×÷Òµ¿ØÖÆÊÇÔÚ´°¿ÚÖն˹㷺µÃµ½  
Ó¦ÓÃ֮ǰ  
Éè¼ÆºÍʵÏֵġ£ºÜ¶àÈËÈÏΪÉè¼ÆµÃºÃµÄ´°¿ÚϵͳÒѾ­Ãâ³ýÁ˶Ô×÷Òµ¿ØÖƵÄÐèÒª¡£Ä³  
ЩÈ˱§Ô¹  
×÷Òµ¿ØÖƵÄʵÏÖÒªÇóµÃµ½ÏµÍ³ºË¡¢ÖÕ¶ËÇý¶¯³ÌÐò¡¢shellÒÔ¼°Ä³Ð©Ó¦ÓóÌÐòµÄÖ§³Ö  
£¬ÊdzÔÁ¦  
²»ÌֺõÄÊÂÇ顣ijЩÈËÔÚ´°¿ÚϵͳÖÐʹÓÃ×÷Òµ¿ØÖÆ£¬ËûÃÇÈÏΪÁ½Õß¶¼ÐèÒª¡£²»¹ÜÄã  
µÄÒâ¼ûÈç  
ºÎ£¬×÷Òµ¿ØÖÆÊÇPOSIXª±1ÒÔ¼°FIPS151-1µÄ×é³É²¿·Ö£¬Ëü»¹½«¼ÌÐø´æÔÚ¡£ª¥  
9ª±9¡þshellÖ´ÐгÌÐòª¥  
ÈÃÎÒÃǼìÑéÒ»ÉÏshellÊÇÈçºÎÖ´ÐгÌÐòµÄ£¬ÒÔ¼°ÕâÓë½ø³Ì×é¡¢¿ØÖÆÖն˺ͶԻ°ÆÚµÈ  
¸ÅÄîµÄ¹Ø  
ϵ¡£Îª´Ë£¬ÎÒÃÇÒªÔÙ´ÎʹÓÃpsÃüÁî¡£ª¥  
Ê×ÏÈÎÒÃÇʹÓò»Ö§³Ö×÷Òµ¿ØÖƵľ­µäµÄBourne shell¡£Èç¹ûÖ´ÐУºª¥  
ps -xjª¥  
ÔòÆäÊä³öΪ£ºª¥  
PPID PID PGID SID TPGID COMMANDª¥  
1 163 163 163 163 -shª¥  
163 168 163 163 163 psª¥  
(ÆäÖУ¬É¾³ýÁËһЩÎÒÃÇÏÖÔÚ²»¸ÐÐËȤµÄÁÐÒ»ÖÕ¶ËÃû¡¢Óû§ID¡¢CPUʱ¼äµÈ)¡£shel  
lºÍpsÃüÁî  
Á½ÕßÔÚͬһ¶Ô»°ÆÚºÍǰ̨½ø³Ì×é(163)¡£ÒòΪ163ÊÇÔÚTPGIDÁÐÖÐÏÔʾµÄ½ø³Ì×飬Ëù  
ÒÔÎÒÃdzƠ 
ÆäΪǰ̨½ø³Ì×é¡£psµÄ¸¸½ø³ÌÊÇshell£¬ÕâÕýÊÇÎÒÃÇËùÆÚÍûµÄ¡£×¢Ò⣬login shel  
lÊÇÓÉlogi  
nÒÔ"Ò»"×÷ΪÆäµÚÒ»¸ö×Ö·ûµ÷Óõġ£ª¥  
²»ÐÒµÄÊÇ£¬ps(1)ÃüÁîµÄÊä³öÔÚ¸÷¸öUnix°æ±¾Öж¼ÓÐËù²»Í¬¡£ÔÚSVR4֮ϣ¬Ê¹ÓÃÃü  
Áîps-j1µÃ  
µ½ÀàËÆµÄÊä³ö£¬µ«SVR4²»´òÓ¡TPGID×ֶΡ£ÔÚ4ª±3+BSD֮ϣ¬Ê¹ÓÃÃüÁîps-xj -otp  
gid¡£ª¥  
×¢Ò⣬½«Ò»¸ö½ø³ÌÓëÒ»¸öÖն˽ø³Ì×éID(TPGIDÁÐ)Ïà¹ØÁªÊÇÃû×ÖʹÓò»µ±¡£Ò»¸ö½ø  
³Ì²¢Ã»ÓР 
Ò»¸öÖն˽ø³Ì¿ØÖÆ×éÊôÐÔ¡£Ò»¸ö½ø³ÌÊôÓÚÒ»¸ö½ø³Ì×é¡£¶øÒ»¸ö½ø³Ì×éÊôÓÚÒ»¸ö¶Ô»°  
ÆÚ¡£¶Ô»°  
ÆÚ¿É  
ÄÜÓУ¬Ò²¿ÉÄܼ°ÓпØÖÆÖÕ¶Ë¡£Èç¹ûËüÈ·ÓÐÒ»¸ö¿ØÖÆÖÕ¶Ë£¬Ôò´ËÖÕ¶ËÉ豸֪µÀÆäǰ̨  
½ø³ÌµÄ½ø  
³Ì×éID¡£ÕâÒ»Öµ¿ÉÒÔÓÃtcsetpgrpº¯ÊýÔÚÖÕ¶ËÇý¶¯³ÌÐòÖÐÉèÖá£(Èçͼ9ª±8ÖÐËùʾ¡£  
)ǰ̨½ø  
³Ì×éIDÊÇÖն˵ÄÒ»¸öÊôÐÔ£¬²»Êǽø³ÌµÄÊôÐÔ¡£È¡×ÔÖÕ¶ËÉ豸Çý¶¯³ÌÐòµÄ¸ÃÖµÊÇpsÔÚ  
TPGIDÁР 
ÖдòÓ¡µÄÖµ¡£Èç¹ûps·¢Ïִ˶Ի°ÆÚûÓпØÖÆÖÕ¶Ë£¬ÔòËüÔÚ¸ÃÁдòÓ¡-1¡£ª¥  
Èç¹ûÔÚºǫִ́ÐиÃÃüÁª¥  
ps -xj &ª¥  
ÔòΨһ¸Ä±äµÄÖµÊÇÃüÁîµÄ½ø³ÌID¡£ª¥  
PPID PID PGID SID TPGID COMMANDª¥  
1 163 163 163 163 -shª¥  
163 169 163 163 163 psª¥  
ÒòΪÕâÖÖshell²»ÖªµÀ×÷Òµ¿ØÖÆ£¬ËùÒÔºǫ́×÷ҵûÓй¹³ÉÁíÒ»¸ö½ø³Ì×飬ҲûÓдӠ 
ºǫ́×÷Òµ  
´¦È¡×ß¿ØÖÆÖÕ¶Ë¡£ª¥  
ÈÃÎÒÃÇÏÖÔÚ¿´Ò»¿´Bourne shellÈçºÎ´¦ÀíÒ»¸ö¹ÜµÀÏß¡£Ö´ÐÐÏÂÁÐÃüÁª¥  
ps -xj | cat1ª¥  
ÆäÊä³öÊÇ£ºª¥  
PPID PID PGID SID TPGID COMMANDª¥  
1 163 163 163 163 -shª¥  
163 200 163 163 163 cat1ª¥  
200 201 163 163 163 psª¥  
(³ÌÐòcat1Ö»ÊDZê×¼cat³ÌÐòµÄÒ»¸ö¸±±¾£¬µ«Ãû×Ö²»Í¬¡£ÎÒÃÇ»¹½«ÔÚ±¾½ÚʹÓÃcatµÄ  
ÁíÒ»¸öÃû  
Ϊcat2µÄ¸±±¾¡£ÔÚÒ»¸ö¹ÜµÀÏßÖÐʹÓöþ¸öcatʱ£¬²»Í¬µÄÃû×Ö¿ÉʹÎÒÃǽ«Õ¬Çø·Ö¿ª  
À´¡£)×¢Òâ  
£¬ÔڹܵÀÖеÄ×îºóÒ»¸ö½ø³ÌÊÇshellµÄ×Ó½ø³Ì£¬ÔڸùܵÀÖеĵÚÒ»¸ö½ø³ÌÔòÊÇ×îºó  
Ò»¸ö½ø³Ì  
µÄ×Ó½ø³Ì¡£´ÓÖпÉÒÔ¿´³ö£¬shell forkÒ»¸öËüµÄ¸±±¾£¬È»ºó´Ë¸±±¾ÔÙΪ¹ÜµÀÏßÖеĠ 
ÿÌõÃüÁî  
¸÷forkÒ»¸ö½ø³Ì¡£ª¥  
Èç¹ûÔÚºǫִ́Ðд˹ܵÀÏߣºª¥  
ps -xj | cat1 &ª¥  
ÔòÖ»Óнø³ÌID¸Ä±äÁË¡£ÒòΪshell²¢²»´¦Àí×÷Òµ¿ØÖÆ£¬ºǫ́½ø³ÌµÄ½ø³Ì×éIDÈÔÊÇ16  
3 £¬Èçͬ  
Öն˽ø³Ì×éIDÒ»Ñù¡£ª¥  
Èç¹ûÒ»¸öºǫ́½ø³ÌÊÔͼ¶ÁÆä¿ØÖÆÖÕ¶Ë£¬Ôò»á·¢ÉúÊ²Ã´ÄØ?ÀýÈ磬ÈôÖ´ÐУºª¥  
cat>tempª±foo &ª¥  
ÔÚÓÐ×÷Òµ¿ØÖÆÊ±£¬ºǫ́×÷Òµ±»·ÅÔÚºǫ́½ø³Ì×飬Èç¹ûºǫ́×÷ÒµÊÔͼ¶Á¿ØÖÆÖÕ¶Ë£¬Ôò  
»á²úÉúÐźÅSIGTTIN¡£ÔÚûÓÐ×÷Òµ¿ØÖÆÊ±£¬Æä´¦Àí·½·¨ÊÇ£ºÈç¹û¸Ã½ø³Ì×Ô¼º²»ÖØÐ¶¨  
Ïò±ê×¼ÊäÈ룬Ôòshell×Ô¶¯½«ºǫ́½ø³ÌµÄ±ê×¼ÊäÈëÖØÐ¶¨Ïòµ½£¯dev£¯null¡£¶Á£¯dev  
£¯nullÔò²úÉúÒ»¸öÎļþ½áÊø¡£Õâ¾ÍÒâζןǫ́cat½ø³ÌÁ¢¼´¶Áµ½Îļþ⣬²¢Õý³£½áÊø¡£ª¥  
ÉÏÃæËµÃ÷Á˶Ժǫ́½ø³Ìͨ¹ýÆä±ê×¼ÊäÈë´æÈ¡¿ØÖÆÖն˵ÄÊʵ±´¦Àí·½·¨£¬µ«ÊÇ£¬Èç¹û  
Ò»¸öºǫ́½ø³Ì´ò¿ª£¯dev£¯tty²¢ÇÒ¶Á¸Ã¿ØÖÆÖÕ¶Ë£¬ÓÖ½«ÔõÑùÄØ?¶Ô´ËÎÊÌâµÄ»Ø´ðÊÇ"Ëü  
ÒÀÀµÓÚ"¡£µ«ÊÇÕâºÜ¿ÉÄܲ»ÊÇÎÒÃÇËùÒªµÄ¡£ÀýÈ磺ª¥  
crypt<salaries | lpr &ª¥  
¾ÍÊÇÕâÑùµÄÒ»Ìõ¹ÜµÀÏß¡£ÎÒÃÇÔÚºǫ́ÔËÐÐËü£¬µ«ÊÇcrypt³ÌÐò´ò¿ª£¯dev£¯tty£¬¸ü  
¸ÄÖն˵ÄÌØÐÔ(½ûÖ¹»ØËÍ)£¬È»ºó´Ó¸ÃÉ豸¶Á£¬×îºó¸´ÖøÃÖÕ¶ËÌØÐÔ¡£µ±Ö´ÐÐÕâÌõºó  
̨¹ÜµÀʱ£¬cryptÔÚÖÕ¶ËÉÏ´òÓ¡£¬Ìáʾ·ûPassword:µ«ÊÇshell¶ÁÈ¡ÁËÎÒÃÇËùÊäÈëµÄ(ÃÜÂë  
¿ÚÁî×Ö)£¬²¢ÆóͼִÐÐÄÇÖÖÃû×ÖµÄÒ»ÌõÃüÁî¡£ÎÒÃÇÊ䏸shellµÄÏÂÒ»ÐУ¬Ôò±»Crype½ø³Ì  
ȡΪ¿ÚÁî×ÖÐУ¬ÓÚÊÇSalariesÒ²²»ÄÜÕýÈ·µØ±»ÒëÂ룬½«Ò»¶ÑûÓÐÓõÄÐÅÏ¢Ë͵½ÁË´òÓ¡»ú  
¡£ÔÚÕâÀÎÒÃÇÓÐÁ˶þ¸ö½ø³Ì£¬ËüÃÇÊÔͼÔÚͬʱ¶ÁͬһÉ豸£¬Æä½á¹ûÔòÒÀÀµÓÚϵ  
ͳ¡£ÎÒÃÇÇ°ÃæËµÃ÷µÄ×÷Òµ¿ØÖÆÒԽϺõķ½Ê½´¦  
ÀíÒ»¸öÖÕ¶ËÔÚ¶à¸ö½ø³Ì¼äµÄת½Ó¡£ª¥  
·µ»Øµ½ÎÒÃǵÄBourne shellʵÀý£¬ÔÚÒ»Ìõ¹ÜµÀÖÐÖ´ÐÐÈý¸ö½ø³Ì£ºª¥  
ps -xj|cat1|cat2ª¥  
ÏÂÃæ¿´Ò»¿´shellËùÓõĽø³Ì¿ØÖÆ£ºª¥  
PPID PID PGID SID TPGID COMMANDª¥  
1 163 163 163 163 -shª¥  
163 202 163 163 163 cat2ª¥  
202 203 163 163 163 psª¥  
202 204 163 163 163 cat1ª¥  
ÔÙÒ»´Î£¬¸Ã¹ÜµÀÖеÄ×îºóÒ»¸ö½ø³ÌÊÇshellµÄ×Ó½ø³Ì£¬¶øÖ´ÐÐÔڹܵÀÖÐÆäËüÃüÁîµÄ  
½ø³ÌÔòÊÇ  
¸Ã×îºó½ø³ÌµÄ×Ó½ø³Ì¡£Í¼9ª±9ÏÔʾÁËËù·¢ÉúµÄÇé¿ö¡£ª¥  
ͼ9ª±9 Bourne shellÖ´ÐйܵÀÏßps-xj|cat1|cat2ʱµÄ½ø³Ìª¥  
ÒÀÀµÓÚ"¡£µ«ÊÇÕâºÜ¿ÉÄܲ»ÊÇÎÒÃÇËùÒªµÄ¡£ÀýÈ磺ª¥  
crypt<salaries | lpr &ª¥  
¾ÍÊÇÕâÑùµÄÒ»Ìõ¹ÜµÀÏß¡£ÎÒÃÇÔÚºǫ́ÔËÐÐËü£¬µ«ÊÇcrypt³ÌÐò´ò¿ª£¯dev£¯tty£¬¸ü  
¸ÄÖն˵ÄÌØÐÔ(½ûÖ¹»ØËÍ)£¬È»ºó´Ó¸ÃÉ豸¶Á£¬×îºó¸´ÖøÃÖÕ¶ËÌØÐÔ¡£µ±Ö´ÐÐÕâÌõºó  
̨¹ÜµÀʱ£¬cryptÔÚÖÕ¶ËÉÏ´òÓ¡£¬Ìáʾ·ûPassword:µ«ÊÇshell¶ÁÈ¡ÁËÎÒÃÇËùÊäÈëµÄ(ÃÜÂë  
¿ÚÁî×Ö)£¬²¢ÆóͼִÐÐÄÇÖÖÃû×ÖµÄÒ»ÌõÃüÁî¡£ÎÒÃÇÊ䏸shellµÄÏÂÒ»ÐУ¬Ôò±»Crype½ø³Ì  
ȡΪ¿ÚÁî×ÖÐУ¬ÓÚÊÇSalariesÒ²²»ÄÜÕýÈ·µØ±»ÒëÂ룬½«Ò»¶ÑûÓÐÓõÄÐÅÏ¢Ë͵½ÁË´òÓ¡»ú  
¡£ÔÚÕâÀÎÒÃÇÓÐÁ˶þ¸ö½ø³Ì£¬ËüÃÇÊÔͼÔÚͬʱ¶ÁͬһÉ豸£¬Æä½á¹ûÔòÒÀÀµÓÚϵ  
ͳ¡£ÎÒÃÇÇ°ÃæËµÃ÷µÄ×÷Òµ¿ØÖÆÒԽϺõķ½Ê½´¦  
ÀíÒ»¸öÖÕ¶ËÔÚ¶à¸ö½ø³Ì¼äµÄת½Ó¡£ª¥  
·µ»Øµ½ÎÒÃǵÄBourne shellʵÀý£¬ÔÚÒ»Ìõ¹ÜµÀÖÐÖ´ÐÐÈý¸ö½ø³Ì£ºª¥  
ps -xj|cat1|cat2ª¥  
ÏÂÃæ¿´Ò»¿´shellËùÓõĽø³Ì¿ØÖÆ£ºª¥  
PPID PID PGID SID TPGID COMMANDª¥  
1 163 163 163 163 -shª¥  
163 202 163 163 163 cat2ª¥  
202 203 163 163 163 psª¥  
202 204 163 163 163 cat1ª¥  
ÔÙÒ»´Î£¬¸Ã¹ÜµÀÖеÄ×îºóÒ»¸ö½ø³ÌÊÇshellµÄ×Ó½ø³Ì£¬¶øÖ´ÐÐÔڹܵÀÖÐÆäËüÃüÁîµÄ  
½ø³ÌÔòÊÇ  
¸Ã×îºó½ø³ÌµÄ×Ó½ø³Ì¡£Í¼9ª±9ÏÔʾÁËËù·¢ÉúµÄÇé¿ö¡£ª¥  
ͼ9ª±9 Bourne shellÖ´ÐйܵÀÏßps-xj|cat1|cat2ʱµÄ½ø³Ìª¥  
ps -xj &ª¥  
ÆäÊä³öΪ£ºª¥  
PPID PID PGID SID TPGID COMMANDª¥  
1 700 700 700 700 -kshª¥  
700 709 709 700 700 psª¥  
ÔÙÒ»´Î£¬psÃüÁî±»·ÅÈëËü×Ô¼ºµÄ½ø³Ì×飬µ«ÊÇ´Ëʱ½ø³Ì×é(709)²»ÔÙÊÇǰ̨½ø³Ì×é  
¡£ÕâÊÇÒ»  
¸öºǫ́½ø³Ì×é¡£TPGID 700ָʾǰ̨½ø³Ì×éÊÇlogin shell¡£ª¥  
°´ÏÂÁз½Ê½ÔÚÒ»¸ö¹ÜµÀÖÐÖ´ÐÐÁ½¸ö½ø³Ì£ºª¥  
ps -xj|cat1ª¥  
ÆäÊä³öΪ£ºª¥  
PPID PID PGID SID TPGID COMMANDª¥  
1 700 700 700 710 -kshª¥  
700 710 710 700 710 psª¥  
700 711 710 700 710 cat1ª¥  
Á½¸ö½ø³ÌpsºÍcat1¶¼ÔÚÒ»¸öнø³Ì×é(T10)ÖУ¬ÕâÊÇÒ»¸öǰ̨½ø³Ì×é¡£ÔÚ±¾ÀýºÍÀà  
ËÆµÄBourn  
e  
shellʵÀýÖ®¼äÎÒÃÇÒ²ÄÜ¿´µ½ÁíÒ»¸öÇø±ð¡£Bourne shellÊ×ÏÈ´´½¨½«Ö´ÐйܵÀÏßÖР 
µÄ×îºóÒ»  
ÌõÃüÁîµÄ½ø³Ì£¬¶øÒò´Ë½ø³ÌÊǵÚÒ»¸ö½ø³ÌµÄ¸¸½ø³Ì¡£ÔÚÕâÀKorn shellÊÇÁ½¸ö½ø  
³ÌµÄ¸¸½ø  
³Ì¡£µ«ÊÇ£¬Èç¹ûÔÚºǫִ́Ðд˹ܵÀÏß¡£ª¥  
ps -xj|cat1 &ª¥  
Æä½á¹ûÏÔʾÏÖÔÚKornshellÒÔÓëBourne shellÏàͬµÄ·½Ê½²úÉú½ø³Ì¡£ª¥  
PPID PID PGID SID TPGID COMMANDª¥  
1 700 700 700 700 -kshª¥  
700 712 712 700 700 cat1ª¥  
712 713 712 700 700 psª¥  
Á½¸ö½ø³Ì712ºÍ713¶¼´¦ÔÚºǫ́½ø³Ì×é712ÖС£ª¥  
9ª±10¡þ¹Â¶ù½ø³Ì×骥  
Ò»¸ö¸¸½ø³ÌÒÑÖÕÖ¹µÄ½ø³Ì³ÆÎª»¡¶ù½ø³Ì(orphan process)£¬ÕâÖÖ½ø³ÌÓÉinit½ø³ÌÊÕ  
Áì¡£ÏÖ  
ÔÚÎÒÃÇҪ˵Ã÷Õû¸ö½ø³Ì×éÒ²¿É³ÉΪ¹Â¶ù£¬ÒÔ¼°POSIXª±1ÈçºÎ´¦ÀíËü¡£ª¥  
ʵÀýª¥  
¿¼ÂÇÒ»¸ö½ø³Ì£¬ËüforkÁËÒ»¸ö×Ó½ø³ÌÈ»ºóÖÕÖ¹¡£ÕâÔÚϵͳÖÐÊǾ­³£·¢ÉúµÄ£¬²¢ÎÞÒì  
³£Ö®´¦£¬  
µ«ÊÇÔÚ¸¸½ø³ÌÖÕֹʱ£¬Èç¹û¸Ã×Ó½ø³ÌÍ£Ö¹(ÓÃ×÷Òµ¿ØÖÆ)ÓÖ½«ÈçºÎÄØ?×Ó½ø³ÌÈçºÎ¼Ì  
Ðø£¬ÒÔ¼°  
×Ó½ø³ÌÊÇ·ñÖªµÀËüÒѾ­Êǹ¶ù½ø³Ì?³ÌÐò9ª±1ÊÇÕâÖÖÇé¿öµÄÒ»¸öÀý×Ó¡£ÏÂÃæÒªËµÃ÷  
¸Ã³ÌÐòµÄ  
ijЩÐÂÌØÕ÷¡£Í¼9ª±10ÏÔʾÁ˳ÌÐò9ª±1ÒѾ­Æð¶¯£¬¸¸½ø³ÌÒѾ­forkÁË×Ó½ø³ÌºóµÄÇé  
¿ö¡£ª¥  
ͼ9ª±10 ½«³ÉΪ¹Â¶ùµÄ½ø³Ì×éµÄʵÀýª¥  
ÕâÀÎÒÃǼٶ¨Ê¹ÓÃÁËÒ»¸ö×÷Òµ-¿ØÖÆshell¡£»ØÒäÇ°ÃæËùÊö£¬shell½«Ç°Ì¨½ø³Ì·Å  
ÔÚÒ»¸ö½ø  
³Ì×éÖÐ(±¾ÀýÖÐÊÇ512)£¬shellÔòÁôÔÚ×Ô¼ºµÄ×éÄÚ(442)¡£×Ó½ø³Ì¼Ì³ÐÆä¸¸½ø³Ì(512  
)µÄ½ø³Ì×é  
¡£ÔÚforkÖ®ºó£ºª¥  
¡¤¸¸½ø³Ì˯Ãß5ÃëÖÓ£¬ÕâÊÇÒ»ÖÖÈÃ×Ó½ø³ÌÔÚ¸¸½ø³ÌÖÕֹ֮ǰÔËÐеÄÒ»ÖÖȨÒËÖ®¼Æ¡£  
ª¥  
¡¤×Ó½ø³ÌΪ¹Ò¶ÏÐźÅ(SIGHUP)½¨Á¢ÐźŴ¦Àí³ÌÐò¡£ÕâÑùÎÒÃǾÍÄܹ۲쵽SIGHUPÐźŠ 
ÊÇ·ñÒÑËÍ  
µ½×Ó½ø³Ì¡£(ÔÚµÚÊ®ÕÂÌÖÂÛÐźŴ¦Àí³ÌÐò)¡£ª¥  
¡¤×Ó½ø³ÌÓÃkillº¯ÊýÏòÆä×ÔÉí·¢ËÍÍ£Ö¹Ðźš£ÕâÍ£Ö¹ÁËÒª½ø³Ì£¬ÕâÀàËÆÓÚÓÃÖն˹Ҡ 
Æð×Ö·ûÍ£  
Ö¹Ò»¸öǰ̨×÷Òµ¡£ª¥  
¡¤µ±¸¸½ø³ÌÖÕֹʱ£¬¸Ã×Ó½ø³Ì³ÉΪ¹Â¶ù½ø³Ì£¬¹²¸¸½ø³ÌID³ÉΪ1£¬Ò²¾ÍÊÇinit½ø³Ì  
ID¡£ª¥  
¡¤µ½´Ëµãʱ£¬×Ó½ø³Ì³ÉΪһ¸ö¹Â¶ù½ø³Ì×éµÄ³ÉÔ±¡£POSIXª±1½«¹Â¶ù½ø³Ì×鶨ÒåΪ£º  
¸Ã×éÖÐÿ  
¸ö³ÉÔ±µÄ¸¸½ø³Ì»òÕßÊǸÃ×éµÄÒ»¸ö³ÉÔ±£¬»òÕß²»ÊǸÃ×éËùÊô¶Ô»°ÆÚµÄ³ÉÔ±¡£¶Ô¹Â¶ù  
½ø³Ì×éµÄ  
ÁíÒ»ÖÖÃèÊö¿ÉÒÔÊÇ£ºÒ»¸ö½ø³Ì×é²»Êǹ¶ù½ø³Ì×éµÄÌõ¼þÊÇ£º¸Ã×éÖÐÓÐÒ»¸ö½ø³Ì£¬Æä  
¸¸½ø³ÌÔÚ  
ÊôÓÚͬһ¶Ô»°ÆÚµÄÁíÒ»¸ö×éÖС£Èç¹û½ø³Ì×é²»Êǹ¶ù½ø³Ì×飬ÄÇôÔÚÊôÓÚͬһ¶Ô»°  
ÆÚµÄÁíÒ»  
¸ö×éÖеĸ¸½ø³Ì¾ÍÓлú»áÖØÐÂÆð¶¯¸Ã×éÖÐÍ£Ö¹µÄ½ø³Ì¡£ª¥  
ÔÚÎÒÃÇÕâÀ½ø³Ì×éÖнø³Ì(513)µÄ¸¸½ø³Ì(1)ÊôÓÚÁíÒ»¸ö¶Ô»°ÆÚ¡£ËùÒԴ˽ø³Ì×éÊÇ  
»¡¶ù½ø³Ì  
×é¡£ª¥  
¡¤ÒòΪÔÚ¸¸½ø³Ì(512)ÖÕÖ¹ºó£¬½ø³Ì×é³ÉΪ»¡¶ù½ø³Ì×飬POSIXª±1ÒªÇóÏòгÉΪ¹Â  
¶ù½ø³Ì×é  
ÖР 
´¦ÓÚֹͣ״̬µÄÿһ¸ö½ø³Ì·¢Ë͹ҶÏÐźÅ(SIGHUG)£¬½Ó×ÅÓÖÏòÆä·¢ËͼÌÐøÐźÅ(SI  
GCONT)¡£  
ª¥  
¡¤ÔÚ´¦ÀíÁ˹ҶÏÐźźó£¬×Ó½ø³Ì¼ÌÐø¡£¶Ô¹Ò¶ÏÐźŵÄϵͳĬÈ϶¯×÷ÊÇÖÕÖ¹¸Ã½ø³Ì£¬  
Ϊ´ËÎÒÃÇ  
±ØÐëÌṩһ¸öÐźŴ¦Àí³ÌÐòÒÔ²¶×½¸ÃÐźš£Òò´Ë£¬ÎÒÃÇ¿ÉÒÔÆÚÍûsig-hupº¯ÊýÖеĠ 
printf»á  
ÔÚpr-idsº¯ÊýÖеÄprintf֮ǰִÐС£ª¥  
³ÌÐò9ª±1 ´´½¨Ò»¸ö¹Â¶ù½ø³Ì×骥  
ÏÂÃæÊdzÌÐò9ª±1µÄÊä³öª¥  
$ aª±outª¥  
parent:pid=512,ppid=442,pgrp=512ª¥  
child:pid=513,ppid=512,pgrp=512ª¥  
$ SIGHUP received,pid=513ª¥  
child:pid=513,ppid=1,pgrp=512ª¥  
read error from control terminal,errno=5ª¥  
×¢Ò⣬ÒòΪÁ½¸ö½ø³Ì£¬login shellºÍ×Ó½ø³Ì¶¼Ð´ÏòÖÕ¶Ë£¬ËùÒÔshellÌáʾ·ûºÍ×Ó½ø  
³ÌµÄÊä³ö  
Ò»Æð³öÏÖ¡£ÈçÎÒÃÇËùÆÚÍûµÄÄÇÑù£¬×Ó½ø³ÌµÄ¸¸½ø³ÌID±ä³É1¡£ª¥  
×¢Ò⣬ÔÚ×Ó½ø³ÌÖе÷ÓÃpr-idsºó£¬³ÌÐòλÔĶÁ±ê×¼ÊäÈë¡£ÕýÈçǰÊö£¬µ±ºǫ́½ø³Ì×é  
ÊÔͼ¶Á¿Ø  
ÖÆÖÕ¶Ëʱ£¬Ôò¶Ô¸Ãºǫ́½ø³Ì×é²úÉúSIGTTIN¡£µ«ÔÚÕâÀÕâÊÇÒ»¸ö»¡¶ù½ø³Ì×飬Èç  
¹ûϵͳºË  
ÓôËÐźÅÍ£Ö¹Ëü£¬ÔòÔڴ˽ø³Ì×éÖеĽø³Ì¾ÍÔÙÒ²²»»á¼ÌÐø¡£POSIXª±1¹æ¶¨£¬read³ö  
´í·µ»Ø£¬  
ÆäerrnoÉèÖÃΪE10(ÔÚ×÷ÕßËùÓõÄϵͳÖÐÆäÖµÊÇ5)¡£ª¥  
×îºó£¬Òª×¢ÒâµÄÊÇÔÚ¸¸½ø³ÌÖÕֹʱ£¬×Ó½ø³Ì±ä³Éºǫ́½ø³Ì×飬ÒòΪ¸¸½ø³ÌÊÇÓÉshe  
ll×÷Ϊǰ  
̨×÷ÒµÖ´Ðеġ£ª¥  
ÔÚ19ª±5µÄpty³ÌÐòÖÐÎÒÃǽ«»á¿´µ½¹Â¶ù½ø³Ì×éµÄÁíÒ»¸öÀý×Ó¡£ª¥  
9ª±11¡þ4ª±3+BSDʵÏÖª¥  
ÉÏÃæËµÃ÷Á˽ø³Ì¡¢½ø³Ì×é¡¢¶Ô»°ÆÚºÍ¿ØÖÆÖն˵ĸ÷ÖÖÊôÐÔ£¬ÖµµÃ¹Û²ìÒ»ÏÂËùÓÐÕâЩ  
ÊÇÈçºÎ  
ʵÏÖ  
µÄ¡£ÏÂÃæ¼òҪ˵Ã÷4ª±3+BSDµÄʵÏÖ¡£SVR4ʵÏÖµÄijЩÏêϸÇé¿öÔò²Î¼ûWilliams¡²£±  
£¹£¸£¹¡³  
¡£Í¼9ª±11ÏÔʾÁË4ª±3+BSDµÄ¸÷ÖÖÊý¾Ý½á¹¹¡£ª¥  
ͼ9ª±11 ¶Ô»°ÆÚºÍ½ø³Ì×éµÄ4ª±3+BSDʵÏÖª¥  
ÈÃÎÒÃÇ˵Ã÷ͼÖÐʾ³öµÄ¸÷ÖÖ×ֶΡ£´Ó¶Ô»°ÆÚ½á¹¹¿ªÊ¼¡£ÎªÃ¿¸ö¶Ô»°ÆÚ·ÖÅäÒ»¸öÕâÖÖ  
½á¹¹(  
ÀýÈ磬ÿ´Îµ÷ÓÃsetsidʱ)¡£ª¥  
¡¤sª²countÊǸöԻ°ÆÚÖеĽø³Ì×éÊý¡£µ±´Ë¼ÆÊýÆ÷¼õÖÁ0ʱ£¬Ôò¿ÉÊͷŴ˽ṹ¡£ª¥  
   
¡¤Sª²LeaderÊÇÖ¸Ïò¶Ô»°ÆÚÊ×½ø³Ìproc½á¹¹µÄÖ¸Õë¡£ÈçÇ°ÃæÌá¼°µÄ£¬4ª±3+BSD²»±£  
³Ö¶Ô»°ÆÚI  
D×ֶΣ¬¶øSVR4Ôò±£³Ö´Ë×ֶΡ£ª¥  
¡¤Sª²ttyvpÊÇÖ¸Ïò¿ØÖÆÖÕ¶Ëunode½á¹¹µÄÖ¸Õë¡£ª¥  
¡¤Sª²ttypÊÇÖ¸Ïò¿ØÖÆÖÕ¶Ëtly½á¹¹µÄÖ¸Õë¡£ª¥  
ÔÚµ÷ÓÃsetsidʱ£¬ÔÚϵͳºËÖзÖÅäÒ»¸öеĶԻ°ÆÚ½á¹¹¡£Sª²CountÉèÖÃΪ1£¬Sª²l  
eaderÉèÖà 
Ϊ  
µ÷Óýø³ÌµÄproc½á¹¹µÄÖ¸Õ룬ÒòΪжԻ°ÆÚûÓпØÖÆÖÕ¶Ë£¬ËùÒÔsª²ttyvpºÍSª²Hy  
pÉèÖÃΪ  
¶¨Ö¸Õë¡£ª¥  
½Ó¿´ËµÃ÷tly½á¹¹¡£¶ÔÓÚÿ¸öÖÕ¶ËÉ豸ºÍÿ¸öαÖÕ¶ËÉ豸ÔÚϵͳºËÖзÖÅäÒ»¸öÕâÑù  
µÄ½á¹¹¡£(  
ÔÚµÚÊ®¾ÅÕ¶ÔαÖÕ¶Ë×÷¸ü¶à˵Ã÷)ª¥  
¡¤tª²sessionÖ¸Ïò½«´ËÖÕ¶Ë×÷Ϊ¿ØÖÆÖն˵ĶԻ°ÆÚ½á¹¹¡£(×¢Ò⣬tly½á¹¹Ö¸Ïò¶Ô»°  
ÆÚ½á¹¹£¬  
¶Ô»°ÆÚ½á¹¹ÔòÒ²Ö¸Ïòtly½á¹¹¡£)ÖÕ¶ËÔÚÊ§È¥ÔØ²¨ÐźÅ(ͼ9ª±7)ʱʹÓôËÖ¸Õ뽫¹ÒÆð  
ÐźÅË͸ø  
¶Ô»°ÆÚÊ×½ø³Ì¡£ª¥  
¡¤tª²pgrpÖ¸Ïòǰ̨½ø³Ì×éµÄpgrp½á¹¹¡£ÖÕ¶ËÇý¶¯³ÌÐòÓôË×ֶν«ÐźÅËÍÔÚǰ̨½ø  
³Ì×é¡£ÓÉ  
ÊäÈëÌØÊâ×Ö·û(Öжϡ¢Í˳öºÍ¹ÒÆð)¶ø²úÉúµÄÈý¸öÐźű»ËÍÖÁǰ̨½ø³Ì×é¡£ª¥  
¡¤tª²termiosÊǰüº¬ËùÓÐÕâÐ©ÌØÊâ×Ö·ûºÍÓë¸ÃÖÕ¶ËÓйØÐÅÏ¢µÄ½á¹¹¡£(ÀýÈ磬²¨ÌØ  
ÂÊ£¬»ØËÍ  
´ò¿ª»ò¹Ø±ÕµÈ)¡£ÔÚµÚʮһÕÂÖн«ÔÙ˵Ã÷´Ë½á¹¹¡£ª¥  
¡¤tª²winsizeÊǰüº¬ÖÕ¶Ë´°¿Úµ±Ç°³ß´çµÄwinsize½á¹¹¡£µ±ÖÕ¶Ë´°¿Ú³ß´ç¸Ä±äʱ£¬  
ÐźÅSIGWI  
NCH±»ËÍÖÁǰ̨½ø³Ì×é¡£ÔÚ11¡¢12½ÚÖн«ËµÃ÷ÈçºÎÉèÖúʹæÈ¡Öն˵±Ç°´°¿Ú³ß´ç¡£  
ª¥  
×¢Ò⣬ΪÁËÕÒµ½Ìض¨¶Ô»°ÆÚµÄǰ̨½ø³Ì×飬ϵͳºË´Ó¶Ô»°ÆÚ½á¹¹¿ªÊ¼£¬È»ºó°´s-t  
typµÃµ½¿ØÖÆÖն˵Ätty½á¹¹£¬È»ºó°´t-pgrpµÃµ½Ç°Ì¨½ø³Ì×éµÄpgrp½á¹¹¡£ª¥  
pgrp½á¹¹°üº¬Ò»¸ö½ø³ÌµÄÐÅÏ¢¡£ª¥  
¡¤pgª²idÊǽø³Ì×éID¡£ª¥  
¡¤pgª²sessionÖ¸Ïò´Ë½ø³Ì×éËùÊôµÄ¶Ô»°ÆÚ½á¹¹¡£ª¥  
¡¤pgª²memÊÇÖ¸Ïò´Ë½ø³Ì×éµÚÒ»¸ö½ø³ÌµÄproc½á¹¹µÄÖ¸Õë¡£ÔÚproc½á¹¹ÖеÄpª²pgr  
pnxtÖ¸Ïò´Ë×éÖеÄÏÂÒ»¸ö½ø³Ì£¬½ø³Ì×éÖÐ×îºóÒ»¸ö½ø³ÌprocÖеÄpª²pgrpnxtÔòΪ¶¨  
Ö¸Õë¡£ª¥  
   
proc½á¹¹°üº¬Ò»¸ö½ø³ÌµÄËùÓÐÐÅÏ¢¡£ª¥  
¡¤pª²pid°üº¬½ø³ÌID¡£ª¥  
¡¤pª²pptrÊÇÖ¸Ïò¸¸½ø³Ìproc½á¹¹µÄÖ¸Õë¡£ª¥  
¡¤pª²pgrpÖ¸Ïò±¾½ø³ÌËùÊôµÄ½ø³Ì×éµÄpgrp½á¹¹¡£ª¥  
¡¤pª²pgrpnxtÈçÉÏÃæÒÑ˵Ã÷µÄ£¬ÕâÊÇÖ¸Ïò½ø³Ì×éÖÐÏÂÒ»¸ö½ø³ÌµÄÖ¸Õë¡£ª¥  
×îºó»¹ÓÐÒ»¸övnode½á¹¹¡£ÔÚ´ò¿ª¿ØÖÆÖÕ¶ËÉ豸ʱ·ÖÅä´Ë½á¹¹¡£½ø³Ì¶Ô£¯dev£¯tty  
µÄËùÓзÃÎʶ¼Í¨¹ývnode½á¹¹¡£ÔÚͼ9ª±11ÖУ¬Êµ¼Êiª²nodeÊÇvª²nodeµÄÒ»²¿·Ö¡£  
ÔÚ3ª±10ÖÐÎÒÃÇÔøÌá¼°ÕâÊÇ4ª±3+BSDµÄʵÏÖ·½·¨£¬¶øSVR4Ôò½«£Öª²node´æÔÚiª²nodeÖС£  
ª¥  
9ª±12¡þÕªÒªª¥  
±¾ÕÂ˵Ã÷Á˽ø³Ì×éÖ®¼äµÄ¹ØÏµ--¶Ô»°ÆÚ£¬ËüÓÉÈô¸É¸ö½ø³Ì×é×é³É¡£×÷Òµ¿ØÖÆÊǵ±½ñ  
ºÜ¶àUnixϵͳËùÖ§³ÖµÄ¹¦ÄÜ£¬ÎÒÃÇ˵Ã÷ÁËËüÊÇÈçºÎÓÉÖ§³Ö×÷Òµ¿ØÖƵÄshellʵÏֵġ£ÔÚ  
ÕâЩ½ø³Ì¹ØÏµÉæ¼°µ½ÁË£¯dev£¯tty¡£ÔÚËùÓÐÕâЩ½ø³Ì¹ØÏµÖУ¬¶¼ÓÃÁ˺ܶàÐźŷ½ÃæµÄ  
¹¦ÄÜ¡£ÏÂÒ»ÕÂÏêϸµØÌÖÂÛUnixÖеÄÐźŻúÖÆ  
¡£¡¼£Ì£Í¡½  
Ê  
   
   
   
   
   
 
   
--  
 
 
-- 
¡ù À´Ô´:¡¤BBS Ë®Ä¾Ç廪վ smth.org¡¤[FROM: 202.38.248.38] 

BBSˮľÇ廪վ¡Ã¾«»ªÇø