´ÙÀ½ ÀÌÀü Â÷·Ê

3. ´ÙÀ̾ó·Î±× Çʵå

¸¹Àº ÇʵåµéÀÌ ´ÙÀ̾ó·Î±×¿¡¼­ ¼±ÅûçÇ×ÀÔ´Ï´Ù. ¿©±â¿¡ À̵éÀÇ ¼³¸íÀÌ ÀÖ½À´Ï´Ù. °¢°¢¿¡ ´ëÇÏ¿©, ÁÖ¾îÁø Sysv ½ºÅ©¸³Æ®¸¦ Çâ»ó½Ã۱â À§ÇÏ¿© ÇÊ¿äÇÑ ÇØ´ç ÅÂÅ©(tag) ¶ÇÇÑ Á¦½ÃÇÒ °ÍÀÔ´Ï´Ù. Dropin°ú Sysv init ½ºÅ©¸³Æ®´Â µÑ´Ù linuxconf¿¡¼­ °°Àº ¿£Áø¿¡ ÀÇÇÏ¿© Áö¿øµË´Ï´Ù.

3.1 ÆÐŰÁö À̸§

°£´ÜÈ÷ À̸§À» Á¦°øÇϽʽÿä. °¢ dropinÀº °íÀ¯ÇÑ À̸§À» °®½À´Ï´Ù. ¸ðµç dropinÀº /etc/linuxconf/control¿¡ ASCII È­ÀÏ·Î ÀúÀåµË´Ï´Ù. À̸§Àº ´ÙÀ½°ú °°Àº ´Ù¾çÇÑ ´Ù¸¥ ¼­ºñ½º¸¦ À§ÇÑ Å°·Î »ç¿ëµË´Ï´Ù.

3.2 Dropin revision

ÇöÀç »ç¿ëµÇÁö ¾Ê½À´Ï´Ù. ¿©±â¿¡ 1À» ÀÔ·ÂÇϽʽÿä.

3.3 ÆÐŰÁö ¼³¸í

ÀÌ ÆÐŰÁö°¡ ¹«¾ùÀ» ÇÏ´ÂÁö¸¦ ¼³¸íÇÏ´Â °£´ÜÇÑ ÅØ½ºÆ®¸¦ ÀÔ·ÂÇϽʽÿä. ¸Þ´º¿Í ´ÙÀ̾ó·Î±×¸¦ ¸¸µå´Âµ¥ ÀÌ¿ëµÇ¹Ç·Î °£°áÇÏ°Ô ÇϽʽÿä.

3.4 ½ÃÀÛ ¸í·É

ÆÐŰÁö¸¦ ½ÃÀÛÇϰí ÃʱâÈ­ Çϴµ¥ ÇÊ¿äÇÑ ¸í·É¾î(Àμö¿Í ÇÔ²²)¸¦ ¿ÏÀüÇÑ ÇüÅ·ΠÁ¦°øÇϽʽÿä.

3.5 Á¤Áö ¸í·É

ÀÌ Çʵå´Â ¼±ÅûçÇ×ÀÔ´Ï´Ù. ÆÐŰÁö¸¦ Á¤ÁöÇϴµ¥ ÇÊ¿äÇÑ ¿ÏÀüÇÑ ÇüÅÂÀÇ ¸í·É¾î¿Í Àμö¸¦ Á¦°øÇϽʽÿä. ¸¸ÀÏ ÀÌ Çʵ尡 ºñ¾î ÀÖÀ¸¸é, Linuxconf´Â ÇÁ·Î¼¼½º¸íÀ» ÀÌ¿ëÇÒ °ÍÀ̸ç, ÇØ´ç ÇÁ·Î¼¼½º¸¦ Á×ÀÏ(kill) °ÍÀÔ´Ï´Ù. ´ÙÀ½À» º¸½Ê½Ã¿ä.

3.6 ÀçÀåÀü(Reload) ¸í·É¾î

ÀÌ Çʵå´Â ¼±ÅûçÇ×ÀÔ´Ï´Ù. ÆÐŰÁö¸¦ Àç½ÃÀÛÇϰųª Àç-ÃʱâÈ­ Çϴµ¥ ÇÊ¿äÇÑ ¿ÏÀüÇÑ ÇüÅÂÀÇ ¸í·É¾î¿Í Àμö¸¦ Á¦°øÇϽʽÿä. ¸¸ÀÏ ÀÌ Çʵ尡 ºñ¾î ÀÖÀ¸¸é, linuxconf´Â Á¤Áö¿Í ½ÃÀÛ ¸í·É¾î¸¦ »ý¼ºÇÒ °ÍÀÔ´Ï´Ù.

3.7 Á¡°Ë(Probe) ¸í·É¾î

ÀÌ Çʵå´Â ¼±ÅûçÇ×ÀÌ¸ç º¹ÀâÇÑ ÆÐŰÁöÀÇ °æ¿ì¿¡¸¸ ÇÊ¿äÇÕ´Ï´Ù. Linuxconf´Â ´Ù¾çÇÑ Å×½ºÆ®¸¦ ¼öÇàÇϴµ¥, ½Ã½ºÅÛ ±¸¼º È­ÀÏÀÇ °³Á¤ÀÏ¿¡ ´ëÇÑ ÆÐŰÁö¿Í °ü·ÃµÈ ÇÁ·Î¼¼½ºÀÇ ³ªÀÌ(age)¸¦ ºñ±³ÇÕ´Ï´Ù. ¸¸ÀÏ ½Ã½ºÅÛ ±¸¼º È­ÀÏÀÌ º¸´Ù »õ·Î¿î °ÍÀ̶ó¸é, Linuxconf´Â ÆÐŰÁö¿¡ ÀçÀåÀü(reload) ¸í·É¾î(ȤÀº Á¤Áö/½ÃÀÛ ½ÃÄö½º)¸¦ ½ÃÀÛ½Ãŵ´Ï´Ù.

ÀϺΠÆÐŰÁö´Â º¹ÀâÇÑ ½Ã½ºÅÛ ±¸¼º È­ÀÏÀ» °®À¸¸ç dropin¿¡¼­ ¿­°ÅµÉ ¼ö ¾ø½À´Ï´Ù. ȤÀº ±×µéÀÇ »óŰ¡ ´Ù¸¥ ¿äÀο¡ ÀÇÇÏ¿© ¿µÇâÀ» ¹Þ½À´Ï´Ù.

Á¡°Ë(rpobe) ¸í·É¾î´Â ´ÜÁö ¸í·É¾îÀÇ °æ·ÎÀÏ »ÓÀÔ´Ï´Ù. Linuxconf´Â ´ÜÁö ÇϳªÀÇ Àμö "probe"·Î À̰ÍÀ» ºÎ¸£°Ô µË´Ï´Ù. ¸í·ÉÀº ÀÌ¿¡ ¹ÝÀÀÇÏ¿© ÀÌ Àμö¿¡ ¶óÀÎÀ» Ãâ·ÂÇϰųª ȤÀº Çʿ䰡 ¾øÀ» ¶§´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°Ô µË´Ï´Ù. Ç¥ÁØÀûÀÎ ¾×¼Ç, Áï, "½ÃÀÛ", "Á¤Áö", ±×¸®°í "Àç½ÃÀÛ"Àº linuxconf¿¡ ÀÇÇÏ¿© ÇØ¼®µÇ°í ¾×¼ÇÀ» ¼öÇàÇϱâ À§ÇÏ¿© Á¦°øµÈ ½ÃÀÛ, Á¤Áö ±×¸®°í ÀçÀåÀü ¸í·ÉµéÀ» »ç¿ëÇÒ °ÍÀÔ´Ï´Ù.

Á¡°Ë(probe) ¸í·ÉÀº ¶ÇÇÑ "unknown"(Linuxconf¿¡) ¾×¼ÇÀ» µÇµ¹¸± ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì¿¡´Â, Á¡°Ë(probe) ¸í·É ÀÚü´Â ÀÌµé ¾×¼ÇµéÀ» ¼öÇàÇϱâ À§ÇÏ¿© ºÒ¸®¿ö Áú °ÍÀÔ´Ï´Ù.

Sysv ½ºÅ©¸³Æ®ÀÇ ±â´ÉÀ» Á¡°Ë

´ÙÀ½ÀÇ ¶óÀÎÀ» Sysv ½ºÅ©¸³Æ®¿¡ Ãß°¡Çϸé, Linuxconf·Î ÇÏ¿©±Ý "probe" Àμö·Î ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϵµ·Ï Áö½ÃÇÏ´Â °ÍÀÔ´Ï´Ù. Ãâ·Â(output)Àº dropin ó·³ »ç¿ëµË´Ï´Ù.

        # probe: true
        

3.8 ºÎÆÃ½ÃÀÇ Á¤¸®(Boot time cleanup)

ÀÌ Çʵå´Â ¼±ÅûçÇ×ÀÔ´Ï´Ù. ´ç½ÅÀº Àμö¿Í ÇÔ²² ¿ÏÀüÇÑ ÇüÅÂÀÇ ¸í·É¾î¸¦ ÀÔ·ÂÇϽʽÿä. ÀÌ ¸í·É¾î´Â linuxconf¿¡ ÀÇÇÏ¿© ºÎÆÃ½Ã¿¡ ½ÇÇàµÉ °ÍÀ̸ç, runlevel ¼±Åà ¸Þ´º°¡ ÆË¾÷(popping)µÇ±â Á÷Àü¿¡ ½ÇÇàµË´Ï´Ù. ÀÌ ¸í·É¾îÀÇ Ãâ·ÂÀº Linuxconf ·Î±×ÀÇ "ºÎÆÃÀü Ÿ½ºÅ©" »ö¼Ç¿¡ ±â·ÏµÉ °ÍÀÔ´Ï´Ù.

3.9 ÇÁ·Î¼¼½º ¸í

ÀÌ »ö¼ÇÀº ¼±ÅûçÇ×ÀÔ´Ï´Ù. ´ç½ÅÀº ½ÃÀÛ ¸í·É¾î(Ç×»ó ÀÛµ¿ÇÏ´Â µ¥¸óµé)¿¡ ÀÇÇÏ¿© ½ÃÀ۵Ǵ ´Ù¾çÇÑ ÇÁ·Î¼¼½º¸íµéÀ» ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù. ¸¸ÀÏ ÀÌ »ö¼ÇÀ» ºñ¿ö µÎ¸é, Linuxconf´Â °¢ ÇÁ·Î¼¼½ºÀÇ À̸§À» ½ÃÀÛ ¸í·É¾î ÀÚü·ÎºÎÅÍ °è»êÇÒ °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¸é, ¸¸ÀÏ ½ÃÀÛ ¸í·É¾î°¡ ´ÙÀ½°ú °°À¸¸é,

        /usr/sbin/foo -a -b
        

ÇÁ·Î¼¼½º¸íÀº foo ÀÔ´Ï´Ù.

¿©·¯°³ÀÇ ÇÁ·Î¼¼½º ¸íÀ» Á¦°øÇÒ ¶§´Â, Linuxconf´Â ÇØ´ç ÆÐŰÁö°¡ ½Ã½ºÅÛ ±¸¼º È­Àϰú ºñ±³ÇÒ¶§ ÃÖ½ÅÀÇ °ÍÀÎÁö¸¦ ¾Ë¾Æº¸±â À§ÇÏ¿© ¸ðµç À̵é ÇÁ·Î¼¼½º¸íÀ» Á¶»çÇÒ °ÍÀÔ´Ï´Ù.

Sysv ½ºÅ©¸³Æ®¿¡¼­ÀÇ ÇÁ·Î¼¼½º¸í

´ÙÀ½ÀÇ Å±״ ´ç½ÅÀ¸·Î ÇÏ¿©±Ý Sysv ½ºÅ©¸³Æ®¿¡ ÀÇÇÏ¿© ½ÃÀ۵Ǵ ÇÁ·Î¼¼½º¸íÀ» ÁöÁ¤Çϵµ·Ï ÇÕ´Ï´Ù. ´ç½ÅÀº ű׸¦ ¿©·¯¹ø ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

        # processname: foo
        

3.10 PID È­ÀÏ

ÀÌ »ö¼ÇÀº ¼±ÅûçÇ×ÀÔ´Ï´Ù. ÀϺΠÆÐŰÁö´Â µ¥¸óÀ» º¹¼ö·Î ½ÃÀÛÇÕ´Ï´Ù. Linuxconf´Â ¾î´À °ÍÀÌ ¸¶½ºÅÍ(master)ÀÎÁö¸¦ ¾Ë¾Æ¾ß ÇÏ°í °¨½ÃµÇ¾î¾ß ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ÆÐŰÁöµéÀº ÇØ´ç ÆÐŰÁöÀÇ ÁÖ(main) ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ID¸¦ Æ÷ÇÔÇϰí ÀÖ´Â ÀÛÀº ÅØ½ºÆ® È­ÀÏÀ» »ý¼ºÇÕ´Ï´Ù. ÀÌ Çʵå´Â ÀϹÝÀûÀ¸·Î /var/run¿¡ .pid¶ó´Â È®ÀåÀÚ¸íÀ¸·Î ÀúÀåµË´Ï´Ù.

¿©·¯°³ÀÇ ÇÁ·Î¼¼½ºµéÀ» ½ÃÀÛ½ÃŰ´Â ÆÐŰÁö´Â ¿©·¯°³ÀÇ PID È­ÀÏÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù.

Sysv ½ºÅ©¸³Æ®¿¡¼­ÀÇ PID È­ÀÏ

´ÙÀ½ÀÇ Å±״ ´ç½ÅÀ¸·Î ÇÏ¿©±Ý Sysv ½ºÅ©¸³Æ®¿Í ¿¬°èµÈ PID È­ÀÏÀ» ÁöÁ¤Åä·Ï ÇÕ´Ï´Ù. ´ç½ÅÀº ű׸¦ ¿©·¯¹ø ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

        # pidfile: /var/run/foo.pid
        

3.11 Ȱ¼ºÈ­ Á¦¾î

ÀÌ »ö¼ÇÀº Linuxconf¿¡°Ô ¾ðÁ¦ ÆÐŰÁö°¡ ½ÃÀ۵Ǿî¾ß ÇÏ´ÂÁö¸¦ ¾Ë·ÁÁÝ´Ï´Ù.

ÆÐŰÁö ÀÌÈÄÀÇ ½ÃÀÛ

ÀÌ Çʵå´Â ¼±ÅûçÇ×ÀÔ´Ï´Ù. ´ç½ÅÀº ÆÐŰÁö¸¦ À̰÷¿¡ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ðµç »ç¿ë°¡´ÉÇÑ ÆÐŰÁö¸¦ º¸¿©ÁÖ´Â µµ¿ò¸» ¸®½ºÆ®°¡ ÀÖ½À´Ï´Ù. Linuxconf´Â ÇöÀçÀÇ ÆÐŰÁö¸¦ ´ç½ÅÀÌ À̰÷¿¡ ÀÔ·ÂÇÑ °Í ÀÌÈÄ¿¡ ½ÃÀÛÇϰí ȤÀº Á¡°Ë(probe)ÇÒ °ÍÀÔ´Ï´Ù.

runlevel¿¡¼­ ½ÃÀÛ

Linuxconf´Â 3°³ ·¹º§ÀÇ ³×Æ®¿öÅ© Ȱµ¿À» Á¤ÀÇÇÕ´Ï´Ù:

´ç½ÅÀº À̰÷¿¡ ¾î¶² run-lvel¿¡¼­ ÆÐŰÁö°¡ ½ÃÀ۵Ǿî¾ß ÇÏ´ÂÁö¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÁÖ¾îÁø run-level¿¡¼­ ½ÃÀÛµÈ ÆÐŰÁö´Â ±× ÀÌÈÄÀÇ ·¹º§¿¡¼­ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ¸¸ÀÏ ´ç½ÅÀÌ ÆÙŰÁö¸¦ "Ŭ¶óÀÌ¾ðÆ® ³×Æ®¿öÅ·"À» Àΰ¡Çϱâ·Î °áÁ¤ÇÑ´Ù¸é, À̰ÍÀº "¼­¹ö ³×Æ®¿öÅ·"¿¡¼­µµ ¶ÇÇÑ Çã¿ëµÉ °ÍÀÔ´Ï´Ù.

´ç½ÅÀº ºÎÆÃ½Ã¿Í Á¦¾îÆÇ ¸Þ´º(³×Æ®¿öÅ© run-level Àüȯ)¿¡¼­ ³×Æ®¿öÅ· run-level¿¡ ´ëÇÑ Á¦¾î¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

run-level¿¡¼­ Á¤Áö

¾Õ¼± Çʵ忡¼­, ´ç½ÅÀº ¾î¶² run-level¿¡¼­ ÆÐŰÁö¸¦ ½ÃÀÛÇÒ Áö¸¦ °áÁ¤ÇÕ´Ï´Ù. ¿©±â¼­´Â ¾î¶² run-level¿¡¼­ »ç¶óÁ®¾ß ÇÏ´ÂÁö¸¦ °áÁ¤ÇÕ´Ï´Ù. ´ç½ÅÀº ¶ÇÇÑ ÀÏ´Ü ½ÃÀÛµÇ¸é °áÄÚ Á×ÀÏ ¼ö ¾ø´Â ÆÐŰÁö¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

3.12 ½Ã½ºÅÛ ±¸¼º È­ÀÏ

ÀÌ »ö¼Ç¿¡¼­´Â, ÆÐŰÁöÀÇ »óÅ¿¡ ¿µÇâÀ» ÁÖ´Â ¸ðµç ½Ã½ºÅÛ ±¸¼º È­Àϵé (°¡´ÉÇÏ´Ù¸é)À» ¿­°ÅÇØ¾ß ÇÕ´Ï´Ù. °¢ ½Ã½ºÅÛ ±¸¼º È­ÀÏ¿¡ ´ëÇÏ¿© ÇØ´ç ÆÐŰÁö°¡ ÀÚµ¿ ÀçÀåÀü(auto-reload)ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. Linuxconf¸¦ Á¡°ËÇϴµ¥ Âü¿©ÇÏÁö ¾ÊÀ» ÀÚµ¿ ÀçÀåÀüµÈ ½Ã½ºÅÛ ±¸¼º È­ÀÏÀº º¸Åë ÆÐŰÁö°¡ Àç½ÃÀ۵Ǿî¾ß ÇÏ´ÂÁö¸¦ °áÁ¤ÇÏ´Â ÀÏÀ» ÇÕ´Ï´Ù. ±×¿Í °°ÀÌ ÀÚµ¿ ÀçÀåÀü(auto-reloaded)µÈ È­ÀÏÀº »ý·«ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ¿©±â¿¡ À̵éÀ» ¿­°ÅÇÏ´Â °ÍÀÌ ÁÁÀºµ¥, ¿Ö³ÄÇϸé À̵éÀÌ ÀÚµ¿À¸·Î "½Ã½ºÅÛ ÇÁ·ÎÈ­ÀÏ ¹öÁ¯¸Å±è"°ú "º¹¼ö ¸Ó½Å °ü¸®"¿¡ Âü¿©Çϱ⠶§¹®ÀÔ´Ï´Ù.

Sysv ½ºÅ©¸³Æ®¸¦ °®´Â ½Ã½ºÅÛ ±¸¼º È­ÀÏ

´ÙÀ½ÀÇ Å±״ ÆÐŰÁöÀÇ »óÅ¿¡ ¿µÇâÀ» ÁÖ´Â ½Ã½ºÅÛ ±¸¼º È­ÀÏÀ» ÁöÁ¤Çϵµ·Ï ÇÕ´Ï´Ù. ´ç½ÅÀº ű׸¦ ¿©·¯¹ø ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼±ÅûçÇ×À¸·Î, °¢ ½Ã½ºÅÛ ±¸¼º È­ÀÏÀº Ű¿öµåÀÎ autoreload°¡ µû¶ó ºÙ½À´Ï´Ù.

        # config: /etc/foo.conf [ autoreload ]
        

3.13 ÄÚ¸àÆ®

ÀÌ ÆÐŰÁö¿¡ °üÇÑ ¾à°£ÀÇ ÄÚ¸àÆ®¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº Âü°í¿ëÀÔ´Ï´Ù. Linuxconf´Â À̵éÀ» ÀÌ¿ëÇÏÁö ¾ÊÀ¸¸ç, ´Ù¸¥ °÷¿¡ µð½ºÇ÷¹ÀÌÇÏÁöµµ ¾Ê½À´Ï´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê