Linux¶à½ø³ÌÏà¹ØÄÚÈÝ
Linux¶à½ø³ÌÏà¹ØÄÚÈÝ
°æÈ¨ÉùÃ÷£º¿ÉÒÔÈÎÒâ×ªÔØ£¬µ«×ªÔØÊ±±ØÐë±êÃ÷Ô×÷Õßcharlee¡¢ÔʼÁ´½Óhttp://tech.idv2.com/2006/10/14/linux-multiprocess-info/ÒÔ¼°±¾ÉùÃ÷¡£
×î½üÔÚÓà perl дһ¸öLinuxÏÂµÄ¶à½ø³ÌÊØ»¤½ø³Ì£¬Òò´ËÑо¿ÁËÒ»ÏÂLinuxϵĽø³ÌÏà¹ØµÄ֪ʶ¡£ÏÖ½«ÐĵÃ×ܽáһϡ£Ö÷ÒªÊǹØÓÚ½ø³Ì´´½¨ºÍ»ØÊÕ¡£
fork
SIGCHLDÐźźͽ©Ê¬½ø³Ì
ÀûÓà waitpid »ØÊÕ½©Ê¬½ø³Ì
ºöÂÔ SIGCHLD »ØÊÕ½©Ê¬½ø³Ì
fork
Ê×ÏÈ˵˵ fork
º¯Êý¡£Õâ¸öº¯ÊýÓÃÀ´´´½¨Ò»¸ö½ø³Ì£¬²»¹ý´´½¨·½·¨ÓÐЩ²»Ì«ºÃÀí½â¡£ÏÈ¿´ÏÂÃæµÄ³ÌÐò
fork-test.pl¡£ÎÒÊÇÓÃperlдµÄ£¬²»¹ýÏàͬµÄ¹¦ÄÜÒ²¿ÉÒÔÓà C À´Íê³É¡£
#!/usr/bin/perl
#------------------------------------
# fork-test.pl
print "Program started, pid=$$.\n";
if ($child_pid = fork()) {
print "I'm parent, my pid=$$, child's pid=$child_pid.\n";
} else {
print "I'm child, pid=$$.\n";
}
ÔËÐÐÖ®ºóÏÔʾÏÂÃæµÄ½á¹û¡£
Program started, pid=8934.
I'm child, pid=8935.
I'm parent, my pid=8934, child's pid=8935.
Ϊʲô I'm child ºÍ I'm parent ¶¼»á±»ÏÔʾ£¿ÕâÊÇÒòΪ fork µ÷ÓÃʱ£¬µ±Ç°µÄ½ø³Ì»á´Ó fork µÄλÖÃÒ»·ÖΪ¶þ£¬fork
¶ÔÁ½¸ö½ø³ÌµÄ·µ»ØÖµ²»Í¬¡£ÔÚ¸¸½ø³ÌÖÐ fork ·µ»Ø×Ó½ø³Ì(¼´ÁíÒ»¸ö½ø³Ì)µÄ½ø³Ìid£¬¶øÔÚ×Ó½ø³ÌÖÐ fork ·µ»Ø 0¡£ÉÏÀýµÄÖ´Ðйý³ÌÈçÏÂͼ¡£
ÉÏÀýÖÐÖ´Ðе½ Program started ʱ£¬Ö»ÓÐÒ»¸ö½ø³Ì 8934£¬¶øÖ´Ðе½ fork ʱ£¬½ø³Ì·ÖΪÁ½¸ö£¬¸¸½ø³ÌΪ 8934£¬×Ó½ø³ÌΪ
8935¡£½ÓÏÂÀ´¸¸½ø³ÌÖ´ÐÐ if ·ÖÖ§£¬ÊäÈë“I'm parent..”£¬¶ø×Ó½ø³ÌÖ´ÐÐ else ·ÖÖ§£¬Êä³ö “I'm child”¡£
SIGCHLDÐźźͽ©Ê¬½ø³Ì
Ê×ÏÈ˵˵ʲôÊǽ©Ê¬½ø³Ì(zombie process)¡£ÎÒÃÇÖªµÀ Linux
ʹÓýø³Ì±íÀ´¹ÜÀí½ø³Ì£¬Ã¿¸ö½ø³Ì¶¼ÔÚ½ø³Ì±íÖÐÕ¼¾ÝÒ»¸öλÖᣵ±ÎÒÃÇÓà fork
Éú³ÉÒ»¸ö×Ó½ø³Ì£¬È»ºó¸Ã×Ó½ø³ÌÍ˳öʱ£¬ÏµÍ³²»»á×Ô¶¯»ØÊÕ¸Ã×Ó½ø³ÌËùռλÖᣴËʱËäÈ»½ø³Ì±íÖÐÓÐÕâ¸ö×Ó½ø³ÌµÄÐÅÏ¢£¬µ«Êµ¼ÊÉϸÃ×Ó½ø³ÌÔçÒѽáÊø£¬ÓÚÊÇÕâ¸ö½ø³Ì¾Í³ÉÁË“½©Ê¬½ø³Ì”¡£
½©Ê¬½ø³ÌËäÈ»²»Õ¼ÓÃϵͳ×ÊÔ´£¬µ«ÊÇËü»áÀ˷ѽø³Ì±íµÄλÖá£Èç¹û½©Ê¬½ø³ÌÌ«¶à£¬ÓпÉÄܻᵼÖ²»ÄÜ´´½¨Ð½ø³Ì¡£ÏÂÃæµÄÀý×Ó zombie-test.pl
ÑÝʾÁËÈçºÎ´´½¨½©Ê¬½ø³Ì£º
#!/usr/bin/perl
#------------------------------------
# zombie-test.pl
sub child {
print "I'm child, pid=$$.\n";
}
while (1) {
if (fork() == 0) {
Ïà¹ØÎĵµ£º
Qt ÒÔÆä¿ªÔ´£¬Ãâ·Ñ£¬ÍêÈ«ÃæÏò¶ÔÏ󣨺ÜÈÝÒ×À©Õ¹£©£¬ÔÊÐíÕæÕýµÄ×é¼þ±à³ÌÒÔ¼°¿ÉÒÆÖ²¿çƽ̨µÈÖî¶àÓÅÊÆµÃµ½Ô½À´Ô½¶àµÄ¿ª·¢ÈËÔ±µÄÇàíù¡£Qt
Creator ÊÇ Nokia ¹Ù·½ÍƳöµÄרÃÅÕë¶Ô Qt ¿ª·¢µÄ IDE¡£±¾ÎÄÏêϸ½éÉÜÁË Linux Ï Qt Creator µÄ°²×°£¬²¢Õë¶Ô
Qt Creator µÄʹÓþÙÁËÒ»¸ö Hello World ¼¶±ðµÄÀý×Ó£¬Ï£Íû¶ÔµÚÒ»´Î½Ó´¥ Qt Cre ......
/etc/hostsÒ»¶¨ÒªÓÐÑϸñµÄ¸ñʽ!!!
grid control 10.2.0.1.1°²×°×¢ÒâÊÂÏî
1.hostname
ÍøÂ磺
¾¡Á¿Ê¹Óþ²Ì¬IP£¬/etc/hostsµÄÎļþ¸ñʽºÜÖØÒª£¬²»ÖªµÀÊǸöBUG»¹ÊÇÒªÇó¾ÍÊÇÄÇôÑϸñ¡£ÎÒÒ»¿ªÊ¼¾ÍÊÇÔÚÕâ³ÔµÄ¿÷£¬ÔÚprecheckÐèÇóµÄʱºòºöÂÔÁË/etc/hosts¼ì²éʧ°ÜµÄ´íÎ󣬽á¹û°²×°Èí¼þûÎÊÌ⣬µ«ÅäÖõÄʱºò³ö´í ......
ǶÈëʽLinux²Ù×÷ϵͳѧϰ¹æ»®
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º
£¨1£© ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔÀí£¨³õ²½¶¨Îªarm9£©
£¨2£© ±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ £¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£©
£¨3£© ±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ ......
ÍøÉϹØÓÚfork()ÎÄÕ¶¼Ëµfork()À´´´½¨×Ó½ø³Ì,ÀûÓ÷µ»ØÖµµÄ²»Í¬À´Ö´Ðв»Í¬µÄ´úÂð¶Î.µ«¶¼Ã»ÓÐ˵µ½ÈçºÎʵÏÖ²»Í¬µÄ·µ»ØÖµ.ÏÂÃæÎÒ½«ºÍÄãÀ´ËµËµÕâ¸öÎÊ題:
¿¼ÂÇÈçÏ´úÂë:
int &nb ......
ÔÚLinuxϵͳÖУ¬¼¸ºõËùÓеÄÓ²¼þ×°ÖôúºÅµµ°¸¶¼ÔÚ/devÕâ¸öĿ¼ÖУ¬
Èç
IDEÓ²ÅÌ£º/dev/hd[a-d]
¹âÇý£º/dev/cdrom
ÈíÅÌ£º/dev/fd[0-1]
Êó±ê£º/dev/mouse
´òÓ¡»ú£º/dev/lp[0-2]
USBËæÉíµú£¬SCSIÓ²ÅÌ£º/dev/sd[a-p]
Íø¿¨£º/dev/eth[0-n]
RAID : /dev/md[0-15]
Ö÷»úÓ²Å̵ÄÖ÷Òª¹æ»®£º
1. ×î¼òµ¥µÄÇи·¨£º Li ......