linuxÖÐwaitpidϵͳµ÷ÓÃ
¶ÔÓÚ½ø³ÌµÄÒ»Éú¿ÉÒÔÓÃһЩÐÎÏóµÄ±ÈÓ÷×÷Ò»¸öССµÄ×ܽ᣺
Ëæ×ÅÒ»¾äfork£¬Ò»¸öнø³ÌßÉßÉÂ䵨£¬µ«ËüÕâʱֻÊÇÀϽø³ÌµÄÒ»¸ö¿Ë¡¡£
È»ºóËæ×Åexec£¬Ð½ø³ÌÍÑÌ¥»»¹Ç£¬Àë¼Ò¶ÀÁ¢£¬¿ªÊ¼ÁËΪÈËÃñ·þÎñµÄÖ°ÒµÉúÑÄ¡£
ÈËÓÐÉúÀϲ¡ËÀ£¬½ø³ÌÒ²Ò»Ñù£¬Ëü¿ÉÒÔÊÇ×ÔÈ»ËÀÍö£¬¼´ÔËÐе½mainº¯ÊýµÄ×îºóÒ»¸ö”}”£¬´ÓÈݵØÀëÎÒÃǶøÈ¥£»Ò²¿ÉÒÔÊÇ×Ôɱ£¬×ÔɱÓÐ2ÖÖ·½Ê½£¬Ò»ÖÖÊǵ÷Óà exitº¯Êý£¬Ò»ÖÖÊÇÔÚmainº¯ÊýÄÚʹÓÃreturn£¬ÎÞÂÛÄÄÒ»ÖÖ·½Ê½£¬Ëü¶¼¿ÉÒÔÁôÏÂÒÅÊ飬·ÅÔÚ·µ»ØÖµÀï±£ÁôÏÂÀ´£»Ëü»¹ÉõÖÁÄܿɱ»Ä±É±£¬±»ÆäËü½ø³Ìͨ¹ýÁíÍâһЩ·½Ê½½áÊøËûµÄÉúÃü¡£
½ø³ÌËÀµôÒԺ󣬻áÁôÏÂÒ»¾ß½©Ê¬£¬waitºÍwaitpid³äµ±ÁËéçʬ¹¤£¬°Ñ½©Ê¬ÍÆÈ¥»ð»¯£¬Ê¹Æä×îÖÕ¹éÓÚÎÞÐΡ£
ÔÚlinuxÖÐwaitϵͳµ÷ÓÃÒ»ÎÄÖнéÉÜÁËÆäÖеÄÒ»¸öéçʬ¹¤wait£¬ ÏÂÃæ½éÉÜÁíÒ»¸öwaitpid£¬Õâ¸öÃ²ËÆ¸´ÔÓЩ¡£
waitpidº¯ÊýÔÐÍ£º
#include<sys/types.h>/* ÌṩÀàÐÍpid_tµÄ¶¨Òå */
#include<sys/wait.h>
pid_twaitpid(pid_t pid,int* status,int options);
´Ó±¾ÖÊÉϽ²£¬ÏµÍ³µ÷ÓÃwaitpidºÍwaitµÄ×÷ÓÃÊÇÍêÈ«ÏàͬµÄ£¬µ«waitpid¶à³öÁËÁ½¸ö¿ÉÓÉÓû§¿ØÖƵIJÎÊýpidºÍoptions£¬´Ó¶øÎªÎÒÃDZà³ÌÌṩÁËÁíÒ»ÖÖ¸üÁé»îµÄ·½Ê½¡£ÏÂÃæÎÒÃǾÍÀ´Ïêϸ½éÉÜÒ»ÏÂÕâÁ½¸ö²ÎÊý£º
pid
´Ó²ÎÊýµÄÃû×ÖpidºÍÀàÐÍpid_tÖоͿÉÒÔ¿´³ö£¬ÕâÀïÐèÒªµÄÊÇÒ»¸ö½ø³ÌID¡£µ«µ±pidÈ¡²»Í¬µÄֵʱ£¬ÔÚÕâÀïÓв»Í¬µÄÒâÒå¡£
1. pid>0ʱ£¬Ö»µÈ´ý½ø³ÌIDµÈÓÚpidµÄ×Ó½ø³Ì£¬²»¹ÜÆäËüÒѾÓжàÉÙ×Ó½ø³ÌÔËÐнáÊøÍ˳öÁË£¬Ö»ÒªÖ¸¶¨µÄ×Ó½ø³Ì»¹Ã»ÓнáÊø£¬waitpid¾Í»áÒ»Ö±µÈÏÂÈ¥¡£
2. pid=-1ʱ£¬µÈ´ýÈκÎÒ»¸ö×Ó½ø³ÌÍ˳ö£¬Ã»ÓÐÈκÎÏÞÖÆ£¬´ËʱwaitpidºÍwaitµÄ×÷ÓÃһģһÑù¡£
3. pid=0ʱ£¬µÈ´ýͬһ¸ö½ø³Ì×éÖеÄÈκÎ×Ó½ø³Ì£¬Èç¹û×Ó½ø³ÌÒѾ¼ÓÈëÁ˱ðµÄ½ø³Ì×飬waitpid²»»á¶ÔËü×öÈκÎÀí²Ç¡£
4. pid<-1ʱ£¬µÈ´ýÒ»¸öÖ¸¶¨½ø³Ì×éÖеÄÈκÎ×Ó½ø³Ì£¬Õâ¸ö½ø³Ì×éµÄIDµÈÓÚpidµÄ¾ø¶ÔÖµ¡£
options
optionsÌṩÁËһЩ¶îÍâµÄÑ¡ÏîÀ´¿ØÖÆwaitpid£¬Ä¿Ç°ÔÚLinuxÖÐÖ»Ö§³ÖWNOHANGºÍWUNTRACEDÁ½¸öÑ¡ÏÕâÊÇÁ½¸ö³£Êý£¬¿ÉÒÔÓÔ|”ÔËËã·û°ÑËüÃÇÁ¬½ÓÆðÀ´Ê¹Ó㬱ÈÈ磺
ret=waitpid(-1,NULL,WNOHANG|WUNTRACED);
Èç¹ûÎÒÃDz»ÏëʹÓÃËüÃÇ£¬Ò²¿ÉÒÔ°ÑoptionsÉèΪ0£¬È磺
ret=waitpid(-1,NULL,0);
Èç¹ûʹÓÃÁËWNOHANG²ÎÊýµ÷ÓÃwaitpid£¬¼´Ê¹Ã»ÓÐ×Ó½ø³ÌÍ˳ö£¬ËüÒ²»áÁ¢¼´·µ»Ø£¬²»»áÏñwaitÄÇÑùÓÀÔ¶µÈÏÂÈ¥¡£
Ïà¹ØÎĵµ£º
¡¡¡¡Ê¹Óà Squid ´úÀí·þÎñÆ÷
¡¡¡¡Squid ÊÇÒ»ÖÖ´úÀí·þÎñÆ÷£¬ËüʵÏÖÁË¶Ô HTTP¡¢FTP ºÍ Gopher ÐÒéµÄ»º´æ¡£Squid Äܹ»Ê¹Ó÷ÃÎÊ¿ØÖÆÁÐ±í£¨Access Control List£¬ACL£©À´ÔÊÐí»ò¾Ü¾ø·ÃÎÊ¡£Squid ¾ß±¸Ç¿´óµÄ¿ÉÅäÖÃÄÜÁ¦ÒÔ¼°Â³°ôÐÔ£¬¶øÇÒÓû§»á·¢ÏÖ£¬¸ÃÈí¼þ·Ç³£ÈÝÒ×ѧϰ¡£¸üºÃµÄÊÇ£¬¿É½« Squid ÅäÖÃΪ͸Ã÷´úÀí£¬¼´ºÃÏñÓû§¸ù±¾²» ......
ʵÀý½âÎöLinuxÏÂĿ¼µÄȨÏÞ
˵Ã÷:Èç¹û¶Ôumask,ȨÏÞÖµ,ÎļþµÄȨÏÞr,w,x¶¼²»Á˽âµÄÅóÓÑ,ÇëÏÈÈ¥²¹Ò»ÏÂÕâ·½ÃæµÄ֪ʶ,ÕâÀï²»×ö½éÉÜ,Ö±½Ó½øÈëÕýÌâ.
Ï£Íûͨ¹ýʵÀý½²½â,ÄÜÈøü¶àµÄ³õѧÕß¶ÔĿ¼µÄȨÏÞ¸üÇåÎú,¸üÃ÷°×!
±¾ÊµÀýÓõ½Á½¸öÕʺÅ:root ºÍ Ò»°ãÓû§
(rootÓû§µÄÌáʾ·û "#&qu ......
LinuxÏÂÍøÂç±à³Ì¸ÅÊö
Ò»£®ÍøÂç֪ʶ¸ÅÊö
ÍøÂç³ÌÐòºÍÆÕͨ³ÌÐò×î´óµÄÇø±ðÊÇÍøÂç³ÌÐòÓÉÁ½²¿·Ö×é³É£º¿Í»§¶ËºÍ·þÎñÆ÷¶Ë¡£
¿Í»§¶Ë£ºÔÚÍøÂç³ÌÐòÖУ¬Èç¹ûÒ»¸ö³ÌÐòÖ÷¶¯ºÍÍâÃæµÄ³ÌÐòͨÐÅ£¬ÄÇôÎÒÃǾͰѸóÌÐò³ÆÎª¿Í»§¶Ë³ÌÐò¡£
·þÎñÆ÷¶Ë£ººÍ¿Í»§¶Ë¶ÔÓ¦µÄ³ÌÐò¼´Îª·þÎñÆ÷¶Ë£»±»¶¯µØµÈ´ýÍâÃæ³ÌÐòÀ´ºÍ×Ô¼ºÍ¨ÐŵijÌÐò¼´Îª·þÎñÆ÷¶Ë³ÌÐò¡ ......
shell ±à³ÌÖÐʹÓõ½µÃifÓï¾äÄÚÅжϲÎÊý
–b µ±file´æÔÚ²¢ÇÒÊÇ¿éÎļþʱ·µ»ØÕæ
-c µ±file´æÔÚ²¢ÇÒÊÇ×Ö·ûÎļþʱ·µ»ØÕæ
-d µ±pathname´æÔÚ²¢ÇÒÊÇÒ»¸öĿ¼ʱ·µ»ØÕæ
-e µ±pathnameÖ¸¶¨µÄÎļþ»òĿ¼´æÔÚʱ·µ»ØÕæ
-f µ±file´æÔÚ²¢ÇÒÊÇÕý¹æÎļþʱ·µ»ØÕæ
-g µ±ÓÉpathnameÖ¸¶¨µÄÎļþ»òĿ¼´æÔÚ²¢ÇÒÉèÖÃÁËSGIDλʱ·µ»ØÎªÕæ
......
Linux×ÔÉí¾ß±¸Ò»ÕûÌ×¹¤¾ßÁ´£¬ÈÝÒ××ÔÐн¨Á¢Ç¶ÈëʽϵͳµÄ¿ª·¢»·¾³ºÍ½»²æÔËÐл·¾³£¬²¢ÇÒ¿ÉÒÔ¿çԽǶÈëʽϵͳ¿ª·¢ÖеķÂÕæ¹¤¾ß£¨ICE£©µÄÕϰ¡£Äں˵ÄÍêÈ«¿ª·ÅʹÈËÃÇ¿ÉÒÔ×Ô¼ºÉè¼ÆºÍ¿ª·¢³öÕæÕýµÄӲʵʱϵͳ£¬ÈíʵʱϵͳÔÚLinuxÖÐÒ²ÈÝÒ׵õ½ÊµÏÖ¡£Ç¿´óµÄÍøÂçÖ§³ÖʹµÃ¿ÉÒÔÀûÓÃLinuxµÄÍøÂçÐÒéÕ»½«Æä¿ª·¢³ÉΪǶÈëʽµÄTCP/IPÍøÂçÐÒéÕ» ......