23 ΠΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ daemon_proc Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ° Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·Π°Π΄Π°Π΅ΡΡΡ Π½Π°ΡΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ err_XXX (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» Π.4), ΠΈ Π΅Π΅ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ syslog Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ fprintf (ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ). ΠΡΠΎ ΡΠΏΠ°ΡΠ°Π΅Ρ Π½Π°Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π²Π΅ΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· Π½Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π΄Π΅ΠΌΠΎΠ½ (ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅Ρ), Π° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π΅ΠΌΠΎΠ½Π° Π·Π°ΠΌΠ΅Π½ΡΡΡ Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π½Π° Π²ΡΠ·ΠΎΠ²Ρ syslog.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈ ΡΠ±ΡΠΎΡ Π²ΡΠ΅Ρ Π±ΠΈΡΠΎΠ² Π² ΠΌΠ°ΡΠΊΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°24 ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Ρ ΠΎΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π΅ΠΌΠΎΠ½ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π²ΡΠ²ΠΎΠ΄Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π΄Π°ΠΌΠΏ (ΡΠ°ΠΉΠ» core), ΠΎΠ½ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π΄Π΅ΠΌΠΎΠ½ ΠΌΠΎΠ³ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ Π² Π»ΡΠ±ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ°ΠΌ ΠΎΡΡΠ°Π½Π΅ΡΡΡ, ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ, Π²ΠΎ Π²ΡΡΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π±Π΅Π· ΠΆΠ΅ΡΡΠΊΠΈΡ ΠΌΠ΅Ρ.
ΠΠ°ΠΊΡΡΡΠΈΠ΅ Π²ΡΠ΅Ρ ΠΎΡΠΊΡΡΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ²25-27 ΠΡ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π·Π°ΠΏΡΡΡΠΈΠ²ΡΠ΅Π³ΠΎ Π΄Π΅ΠΌΠΎΠ½ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π±ΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°: Π² Unix Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ [110, Ρ. 43], ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠ΅Π΄Π΅Π» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ. ΠΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β Π·Π°ΠΊΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 64 Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ , Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΡΠΊΡΡΡΠΎ.
ΠΠ ΠΠΠΠ§ΠΠΠΠSolaris ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ closefrom, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ Π΄Π΅ΠΌΠΎΠ½Π°ΠΌ ΡΠ΅ΡΠ°ΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ stdin, stdout ΠΈ stderr Π² /dev/null29-31 ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡ /dev/null Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²Π²ΠΎΠ΄Π°, Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ . ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΎΡΠΊΡΡΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 0 (ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°), Π° ΡΠ΄ΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅, ΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ². ΠΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠΊΡΡΡΡ ΡΡΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π»ΡΠ±Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ ΠΈ ΡΡΠΈΡΠ°ΡΡΠ°Ρ, ΡΡΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π»ΠΈΠ±ΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π°, Π»ΠΈΠ±ΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΡΠΊΠ°Π· Π±ΡΠ» Π±Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠ°ΡΠ΅Π½: Π΅ΡΠ»ΠΈ Π΄Π΅ΠΌΠΎΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠΎΠΊΠ΅Ρ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠΊΠ΅ΡΠ° Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠΏΠ° perror ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΠΌΠΎΠ½Π° syslogd Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ32 ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ openlog. ΠΠ΅ΡΠ²ΡΠΉ Π΅Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π±Π΅ΡΠ΅ΡΡΡ ΠΈΠ· Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, argv[0]). ΠΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ facility ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π΅ΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΈ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΠΈΠ· ΡΠ°Π±Π». 13.2 Π»ΠΈΠ±ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ LOG_USER, Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π΅ΠΌΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±Π΅Π· ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΎΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΈΠ³Π½Π°Π» SIGHUP ΠΎΡ ΡΠ΄ΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎΡ ΡΠΈΠ³Π½Π°Π» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π΅ΠΌΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΠΈ Π΄Π΅ΠΌΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΅ΡΠ΅ ΡΠ°Π· ΡΡΠΈΡΠ°ΡΡ ΡΠ°ΠΉΠ». ΠΠ²Π° Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠ°ΡΡ, β ΡΡΠΎ ΡΠΈΠ³Π½Π°Π»Ρ SIGINT ΠΈ SIGWINCH, ΠΈ ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π΄Π΅ΠΌΠΎΠ½Π° ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ .
ΠΡΠΈΠΌΠ΅Ρ: ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΌΠΎΠ½Π°
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 13.2 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π°ΡΡ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠ΅Π³ΠΎ ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.8, Π² Π½Π΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ daemon_init, ΡΡΠΎΠ±Ρ ΡΡΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠ³ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΌΠΎΠ½Π°.
ΠΠΈΡΡΠΈΠ½Π³ 13.2. ΠΠ΅ Π·Π°Π²ΠΈΡΡΡΠΈΠΉ ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΌΠΎΠ½Π°
//inetd/daytimetcpsrv2.c
1 #include "unp.h"
2 #include <time.h>
3 int
4 main(int argc, char **argv)
5 {
6 int listenfd, connfd;
7 socklen_t addrlen, len;
8 struct sockaddr *cliaddr;
9 char buff[MAXLINE];
10 time_t ticks;
11 daemon_init(argv[0], 0);
12 if (argc == 2)
13 listenfd = Tcp_listen(NULL, argv[1], &addrlen);
14 else if (argc == 3)
15 listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
16 else
17 err_quit("usage: daytimetcpsrv2 [ <host> ] <service or port>");
18 cliaddr = Malloc(addrlen);
19 for (;;) {
20 len = addrlen;
21 connfd = Accept(listenfd, cliaddr, &len);
22 err_msg("connection from %s", Sock_ntop(cliaddr, len));
23 ticks = time(NULL);
24 snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
25 Write(connfd, buff, strlen(buff));
26 Close(connfd);
27 }
28 }
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π°: ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ daemon_init, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ err_msg Π²ΠΌΠ΅ΡΡΠΎ printf, ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ IP-Π°Π΄ΡΠ΅Ρ ΠΈ ΠΏΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΠΌΠΎΠ½Ρ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ printf ΠΈ fprintf ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ err_msg.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ argc ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° daemon_init. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π°ΠΏΡΡΡΠΈΠ²ΡΠΈΠΉ Π΄Π΅ΠΌΠΎΠ½Π°, ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° daemon_init Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΆΡΡΠ½Π°Π».
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ·Π»Π΅ linux ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ°ΠΉΠ» /var/log/messages (ΠΊΡΠ΄Π° ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ LOG_USER) ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ·Π»ΠΎΠΌ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ:
Jul 10 09:54:37 linux daytimetcpsrv2[24288]: connection from 127.0.0.1.55862
ΠΠ°ΡΠ°, Π²ΡΠ΅ΠΌΡ ΠΈ ΠΈΠΌΡ ΡΠ·Π»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π²ΡΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ syslogd.
13.5. ΠΠ΅ΠΌΠΎΠ½ inetd
Π ΡΠΈΠΏΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Unix ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ FTP, Telnet, Rlogin, TFTP ΠΈ Ρ.Π΄. Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ 4.3BSD, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΡΠ»ΡΠΆΠ± ΠΈΠΌΠ΅Π»Π° ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½Π΅ΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π° /etc/rc, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ» ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π·Π°ΠΏΡΡΠΊΠ°: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅ΡΠ°, ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ bind Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Ρ ΡΠΎΠΊΠ΅ΡΠΎΠΌ, ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (TCP) ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΡ (UDP) ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ fork. ΠΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ» ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΆΠ΄Π°Π», ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΡΡΠΏΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π΄Π²ΡΠΌΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ.
1. ΠΡΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ°, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠ½Π°ΡΠ°Π»Π° Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅ΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Π½Π° ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π΅ΠΌΠΎΠ½Π° (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ daemon_init).
2. ΠΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅ΠΌΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π» Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 4.3BSD ΡΠΏΡΠΎΡΡΠΈΠ»Π° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ² ΡΡΠΏΠ΅ΡΡΠ΅ΡΠ²Π΅Ρ (superserver) ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° β Π΄Π΅ΠΌΠΎΠ½ inetd. ΠΡΠΎΡ Π΄Π΅ΠΌΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ TCP ΠΈΠ»ΠΈ UDP, ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ Unix. ΠΠ΅ΠΌΠΎΠ½ inetd ΡΠ΅ΡΠ°Π΅Ρ Π΄Π²Π΅ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
1. ΠΠ½ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΊΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ daemon_init Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.
2. ΠΡΠΎΡ Π΄Π΅ΠΌΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ (inetd) ΠΆΠ΄Π°ΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΠ»ΡΠΆΠ± (Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ»ΡΠΆΠ±Ρ). ΠΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡΠΎΡΠ΅ΡΡ inetd ΡΠ°ΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΠ·Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ daemon_init. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΉΠ» /etc/inetd.conf. ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π·Π°Π΄Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠΏΠ΅ΡΡΠ΅ΡΠ²Π΅Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΡΠΎΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠ»ΡΠΆΠ±. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Ρ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π». 13.4. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°: