ÔÚLinuxϱàдDaemon
ÔÚLinuxϱàдDaemon
ÔÚLinux£¨ÒÔRedhat Linux Enterprise Edition 5.3ΪÀý£©Ï£¬ÓÐʱÐèÒª±àдService¡£ServiceÒ²ÊdzÌÐò£¬Ò»°ãËæÏµÍ³Æô¶¯Óû§²»¸ÉÔ¤¾Í²»Í˳öµÄ³ÌÐò£¬¿ÉÒÔ³ÆÎªService¡£LinuxϵÄServiceÒ»°ã³ÆÎªDaemon¡£
ÒÔÉÏÊǹãÒåµÄServiceµÄ¶¨Òå¡£LinuxϵķþÎñÒ»°ã·ÅÔÚ/etc/init.dÎļþ¼ÐÏ¡£ä¯ÀÀÒ»ÏÂÕâ¸öÎļþ¼ÐϵÄÎļþ£¬¿ÉÒÔ·¢ÏÖÔÚLinuxϱàдServiceÒ»°ã×ñѵÄÔÔò¡£
LinuxϱàдServiceÒ»°ã×ñѵÄÔÔò
1£©ÕæÕýÔËÐеÄServiceÒ»°ã·ÅÔÚij¸öbinĿ¼Ï£¨/bin£¬/usr/bin£¬etc£©¡£
2£©/etc/init.dÎļþ¼ÐÏÂÒ»°ãÊÇshell½Å±¾£¬ÓÃÀ´¿ØÖÆbinĿ¼ÏµÄService¡£
3£©/etc/init.dÎļþ¼ÐϵÄshell½Å±¾Ò»°ã½ÓÊÜÖÁÉÙÁ½¸ö²ÎÊý£¬startºÍstop¡£»¹ÓÐÆäËû³£ÓõĿÉÑ¡²ÎÊýÈçstatus£¬reload£¬restart£¬µÈ¡£
4£©/etc/init.dÎļþ¼ÐϵÄshell½Å±¾ÖÁÉÙ°üÀ¨Á½ÐÐ×¢ÊÍ£¬Ò»ÐиæËßchkconfig´Ë·þÎñÔËÐеÄrunlevel£¬Æô¶¯ÓÅÏȼ¶£¬½áÊøÓÅÏȼ¶¡£Ò»ÐиæËßchkconfig´Ë·þÎñµÄÃèÊö¡£
LinuxµÄÆô¶¯¹ý³ÌºÍRunLevel
ÒªÀí½âLinuxµÄÆô¶¯¹ý³ÌºÍRunLevel£¬¿ÉÒÔÏÈä¯ÀÀÒ»ÏÂ/etc/inittabÎļþ¡£ÔÚ/etc/inittabÖж¨ÒåÁËÏÂÃæ7ÖÖRunLevel¡£Ã¿¸öService¿ÉÒÔÉèÖÃ×Ô¼ºÔÚÄĸöRunLevelÏÂÔËÐС£¿ÉÒÔµ÷ÓÃ/sbin/init <runlevel>½øÈëÏàÓ¦µÄRunLevel£¬±ÈÈçÔËÐÐ/sbin/init 6¾Í»áµ¼ÖÂÏµÍ³ÖØÆô¡£Èç¹ûÔÚij¸öRunLevelÏÂij¸ö·þÎñ²»ÄÜÆô¶¯£¬µ¼ÖÂϵͳÆô¶¯Ê§°Ü£¬¿ÉÒÔ½øÈëûÓÐÅäÖô˷þÎñµÄRunLevelÀ´½ûÓûòÐ޸Ĵ˷þÎñ£¨ÓеãÀàËÆWindowsϵݲȫģʽ£©¡£
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
/etc/inittabÎļþÏ»¹¶¨ÒåÁËȱʡRunLevel¡£ÈçÏ£¬´ú±íȱʡRunLevelÊÇ5¡£
id:5:initdefault:
ÔÚ/etcÎļþ¼ÐÏ£¬Ö´ÐÐls -d rc*£¬»áÁгöÏÂÃæÕâЩÎļþºÍĿ¼£º
rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.d rc.local rc.sysinit
rcÊÇÒ»¸ö½Å±¾£¬ÔÚ/etc/inittabÖУ¬»á¸ù¾ÝRunLevelÖ´ÐÐrc <runlevel>¡£rc½Å±¾»áµ½ÏàÓ¦µÄrcN.dÖÐÈ¥Ö´ÐÐÏÂÃæµÄ½Å±¾¡£r
Ïà¹ØÎĵµ£º
2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......
Ò»¡¢½ø³Ì¿ØÖÆ£º
fork
´´½¨Ò»¸öнø³Ì
clone
°´Ö¸¶¨Ìõ¼þ´´½¨×Ó
½ø³Ì
execve
ÔËÐпÉÖ´ÐÐÎļþ
exit
ÖÐ
Ö¹½ø³Ì
_exit
Á¢¼´ÖÐÖ¹µ±Ç°½ø³Ì
getdtablesize
½ø
³ÌËùÄÜ´ò¿ªµÄ×î´óÎļþÊý
getpgid
»ñȡָ¶¨½ø³Ì×é±êʶºÅ
setpgid
Éè
ÖÃÖ¸¶¨½ø³Ì×é±êÖ¾ºÅ
getpgrp
»ñÈ¡µ±Ç°½ø³Ì×é±êʶºÅ
setpgrp
Éè
Öõ±Ç°½ø³Ì×é± ......
select()µÄ»úÖÆÖÐÌṩһfd_setµÄÊý¾Ý½á¹¹£¬Êµ¼ÊÉÏÊÇÒ»longÀàÐ͵ÄÊý×飬 ÿһ¸öÊý×éÔªËØ¶¼ÄÜÓëÒ»´ò¿ªµÄÎļþ¾ä±ú£¨²»¹ÜÊÇSocket¾ä±ú,»¹ÊÇÆäËû Îļþ»òÃüÃû¹ÜµÀ»òÉ豸¾ä±ú£©½¨Á¢ÁªÏµ£¬½¨Á¢ÁªÏµµÄ¹¤×÷ÓɳÌÐòÔ±Íê³É£¬ µ±µ÷ÓÃselect()ʱ£¬ÓÉÄں˸ù¾ÝIO״̬ÐÞ¸Äfd_setµÄÄÚÈÝ£¬ÓÉ´ËÀ´Í¨ÖªÖ´ ÐÐÁËselect()µÄ½ø³ÌÄ ......
½ÓÏÂÀ´£¬ÎÒÃǽøÈësysfs²¿·Ö¡£¿´¿´
kobject_add()->create_dir()->sysfs_create_dir()
bus create file->sysfs create file()
. . .
ÕâЩsysfsº¯ÊýµÄÄÚÄ»¡£
˵°×ÁË£¬sysfs¾ÍÊÇÀûÓÃVFSµÄ½Ó¿ÚÈ¥¶ÁдkobjectµÄ²ã´Î½á¹¹£¬½¨Á¢ÆðÀ´µÄÎļþϵͳ¡£¹ØÓÚsysfsµÄÄÚÈݾÍÔÚfs/sysfs/Ï¡£&nbs ......
ÔÚPOSIXÖУ¬±ãÓÐ×ÅÖ§³ÖÕýÔò±í´ïʽµÄϵͳº¯Êý¡£GNU/LinuxÓÐÁ½Ì׿â¿ÉÓÃÓÚÕýÔò±í´ïʽ±à³Ì£ºPOSIX¿âºÍPCRE¿â¡£Ç°Õß²»ÐèÒªµ¥¶À°²×°£¬Ò»°ãÐèÇó»¹ÊÇÄÜÂú×ãµÄ£¬ËÙ¶ÈÉÔÂýЩ¡£ºóÕßÊǾøºÊ¢ÃûµÄPerlÕýÔò±í´ïʽ¿â£¬¹¦ÄÜÇ¿´ó£¬Æ¥ÅäËٶȿ죬²»¹ý¿ÉÄÜÐèÒªµ¥¶À°²×°¡£
int regcomp (regex_t *compiled, const char *pattern, int cflags)
& ......