init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ сопровоТдСния

ΠΠΠ—Π’ΠΠΠ˜Π•

БИНВАКБИБ

ΠžΠŸΠ˜Π‘ΠΠΠ˜Π•

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ уровня выполнСния


ΠŸΡ€ΠΎΡ†Π΅ΡΡ init ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° систСмы

Π—Π°Ρ‚Π΅ΠΌ процСсс init ΠΈΡ‰Π΅Ρ‚ запись initdefault Π² Ρ„Π°ΠΉΠ»Π΅ /etc/inittab (см. inittab(4) ). Если запись initdefault :

сущСствуСт ΠŸΡ€ΠΎΡ†Π΅ΡΡ init ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² этой записи, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ.

Π½Π΅ сущСствуСт (ΠΈΠ»ΠΈ Π½Π΅ сущСствуСт Ρ„Π°ΠΉΠ»Π° /etc/inittab) ΠŸΡ€ΠΎΡ†Π΅ΡΡ init просит ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния с систСмной консоли.

Если Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ записСй Π² inittab


ИзмСнСния уровня выполнСния


Π€Π°ΠΉΠ» /etc/defaults/init

Для пСрСчислСнных Π½ΠΈΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π΅ /etc/default/init ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ стандартныС значСния. НапримСр: TZ=US/Pacific

LC_CTYPE ΠžΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ Π½Π°Π±ΠΎΡ€Π΅ символов.

LC_MESSAGES Π―Π·Ρ‹ΠΊ сообщСний.

LC_MONETARY Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Ρ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½.

LC_NUMERIC Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ чисСл.

LC_TIME Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

LC_ALL Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΎ, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды LC_* Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚.

Если для слуТбы init ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ записи Π½Π΅Ρ‚, Π±ΡƒΠ΄Π΅Ρ‚ использована запись для слуТбы » other «.

/etc/inittab ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ осущСствляСт init

/var/adm/utmpx информация ΠΎ доступС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ администрировании

/var/adm/wtmpx хронология доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ администрирования

/dev/console устройство систСмной консоли

/etc/default/init ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды.

ΠΠ’Π Π˜Π‘Π£Π’Π«

ОписаниС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² см. Π½Π° страницС справочного руководства attributes(5):

ВИП ΠΠ’Π Π˜Π‘Π£Π’ΠΠ—ΠΠΠ§Π•ΠΠ˜Π• ΠΠ’Π Π˜Π‘Π£Π’Π
ДоступСн Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅SUNWcsu

Π‘Π‘Π«Π›ΠšΠ˜

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ init ΠΈ telinit ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

ПослСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: 22 фСвраля 1999 Π³ΠΎΠ΄Π°

Copyleft (no c) 2003 Π’. ΠšΡ€Π°Π²Ρ‡ΡƒΠΊ, OpenXS Initiative, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° русский язык

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄Π΅ΠΌΠΎΠ½Ρ‹, процСсс Init ΠΈ ΠΊΠ°ΠΊ Ρƒ процСссов Ρ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ β€” ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ основы Unix

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄Π΅ΠΌΠΎΠ½Ρ‹, процСсс Init ΠΈ ΠΊΠ°ΠΊ Ρƒ процСссов Ρ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ β€” ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ основы Unix

Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ c Unix-систСмами, Ρ‚ΠΎ навСрняка ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«Π΄Π΅ΠΌΠΎΠ½Β». Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π·Π° Π΄Π΅ΠΌΠΎΠ½Ρ‹ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ ΠΈΡ… Π½Π°Π·Π²Π°Π½ΠΈΠ΅ заставляСт Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ΅.

Π’ΠΎΠΎΠ±Ρ‰Π΅ Π΄Π΅ΠΌΠΎΠ½ β€” это Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ привязан ΠΊ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½. Но ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ связаны с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ процСссами, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚? Об этом ΠΌΡ‹ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Π½ΠΎ спСрва Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ процСсс init ΠΈ ΠΊΠ°ΠΊ происходит Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… процСссов.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ процСсс Init

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ процСссС init, Ρ‚Π°ΠΊΠΆΠ΅ извСстном ΠΊΠ°ΠΊ PID 1 (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ ID всСгда Ρ€Π°Π²Π΅Π½ 1). Π­Ρ‚ΠΎ процСсс создаётся сразу ΠΏΡ€ΠΈ запускС систСмы, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ init запускаСтся, ΠΊΠΎΠ³Π΄Π° ядро Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ находящийся ΠΏΠΎ адрСсу /etc/rc ΠΈΠ»ΠΈ /etc/inittab. ΠŸΡ€ΠΎΡ†Π΅ΡΡ устанавливаСт ΠΏΡƒΡ‚ΡŒ, провСряСт Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ сСрийныС ΠΏΠΎΡ€Ρ‚Ρ‹, Π·Π°Π΄Π°Ρ‘Ρ‚ врСмя ΠΈ Ρ‚.Π΄. Π’ послСднюю ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΠ½ запускаСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ процСссы β€” Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ². ВсС Π΄Π΅ΠΌΠΎΠ½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ располоТСны Π² ΠΏΠ°ΠΏΠΊΠ΅ /etc/init.d/; принято ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π΄Π΅ΠΌΠΎΠ½ΠΎΠ² Π½Π° Π±ΡƒΠΊΠ²Ρƒ d (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, httpd, sshd, mysqld ΠΈ Ρ‚.ΠΏ.), поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ дирСктория Π½Π°Π·Π²Π°Π½Π° Ρ‚Π°ΠΊ ΠΏΠΎ этому ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ сущСствуСт соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΠΏΠΎΠΊ, содСрТащих ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΠΌΠ΅Π½Π΅ΠΌ с суффиксом .d. Π˜Ρ‚Π°ΠΊ, init запускаСт Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², Π½ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ выяснили, ΠΊΠ°ΠΊ это происходит. ΠŸΡ€ΠΎΡ†Π΅ΡΡ init запускаСт Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², создавая свои отвСтвлСния для запуска Π½ΠΎΠ²Ρ‹Ρ… процСссов.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ процСссов

ЕдинствСнный способ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ процСсс Π² Unix β€” ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, извСстный ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΊΠΈΠ½Π³, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя созданиС ΠΊΠΎΠΏΠΈΠΈ процСсса Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° ΠΈ систСмный Π²Ρ‹Π·ΠΎΠ² exec для запуска Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠœΡ‹ использовали слово Β«Ρ„ΠΎΡ€ΠΊΠΈΠ½Π³Β», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ fork β€” это Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ C Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Unix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаёт Π½ΠΎΠ²Ρ‹Π΅ процСссы ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ fork, считаСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ созданному. ΠŸΡ€ΠΎΡ†Π΅ΡΡ-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совпадаСт с Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ: ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ лишь ID, Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ID ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹.

Π’ соврСмСнных дистрибутивах Unix ΠΈ Linux процСссы ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ posix_spawn), Π½ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ процСссов создаётся ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, самым ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ процСссом являСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° init. И ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½Π° сконфигурирована, зависит дальнСйшая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° систСмы.

Π―Π΄Ρ€ΠΎ Linux ΠΏΡ€ΠΈ стартС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ запускС init ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ (для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ свой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» /etc/inittab.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ запуска init ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΡ‚ΠΎ Π·Π½Π°ΠΊΠΎΠΌ с языком программирования C, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² исходных ΠΊΠΎΠ΄Π°Ρ… ядра, Π² Ρ„Π°ΠΉΠ»Π΅ init/main.c, для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… (Π° Ρ‚Π°ΠΊΠΆΠ΅ просто Π»Π΅Π½ΠΈΠ²Ρ‹Ρ…) скаТу, Ρ‡Ρ‚ΠΎ:

Π£Ρ€ΠΎΠ²Π½ΠΈ выполнСния

Π’ Linux сущСствуСт Ρ‚Π°ΠΊΠΎΠ΅ понятиС ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния (run level). Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ выполнСния обозначаСтся числами ΠΎΡ‚ 0 Π΄ΠΎ 9.

БистСма Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ находится Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния. Π’Ρ‹, ΠΊΠ°ΠΊ администратор систСмы ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π΅ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня выполнСния Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ дСлаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ init (ΠΈΠ»ΠΈ telinit). Для этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° пСрСдаСтся число ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ€ΠΎΠ²Π½ΡŽ выполнСния. НапримСр, Ρ‡Ρ‚ΠΎ Π±Ρ‹ пСрСвСсти систСму Π½Π° 3-ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ init ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дистрибутивах Linux ΡƒΡ€ΠΎΠ²Π½ΠΈ выполнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

БоврСмСнная вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ init ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΡΡΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ выполнСния, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСмь.

Π‘ΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ систСму, пСрСвСдя Π΅Ρ‘ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ:

Или ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ систСму:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° /etc/inittab

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ init β€” это тСкстовый Ρ„Π°ΠΉΠ». Π‘ΠΈΠΌΠ²ΠΎΠ» коммСнтария β€” #. Π€Π°ΠΉΠ» состоит ΠΈΠ· строк ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:

Init рассматриваСт строки Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ написаны Π² Ρ„Π°ΠΉΠ»Π΅. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ пСрСвСсти систСму Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния ΠΈ запускаСм init ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ строки, Π² ΠΏΠΎΠ»Π΅ run_level ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€Π° 3. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, описанныС Π² ΠΏΠΎΠ»Π΅ process, Π½ΠΎ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, опрСдСляСмыС ΠΏΠΎΠ»Π΅ΠΌ action.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ писали люди, Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ языком для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся английский, ΠΎΠ½ΠΈ внСсли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности английской Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π’ английском языкС Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ сущСствуСт большоС количСство ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ· этих ΠΏΡ€Π°Π²ΠΈΠ». Π’ΠΎ, Ρ‡Ρ‚ΠΎ я написал Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π°Π±Π·Π°Ρ†Π΅ β€” это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½ΠΎ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» inittab Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ дистрибутива Slackware Linux. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ содСрТимоС этого Ρ„Π°ΠΉΠ»Π°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ пустых строк.

ΠŸΡ€ΠΈ стартС систСмы ядро запускаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ init Π±Π΅Π· указания уровня выполнСния. Π’ΠΎ Π΅ΡΡ‚ΡŒ, просто

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ строки Π² этом случаС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Какой ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? Для указания уровня выполнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ строка

Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅ process пустоС. Π’ ΠΏΠΎΠ»Π΅ action написано ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово initdefault, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΏΠΎΠ»Π΅ run_level написан ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ систСма стартуСт Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС нас ΠΆΠ΄Π΅Ρ‚ сразу Π΄Π²Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°!

Π’ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π² ΠΏΠΎΠ»Π΅ run_level стоит Π±ΡƒΠΊΠ²Π° S, Π΄Π° ΠΈ action sysinit, Π½Π΅ просто Ρ‚Π°ΠΊ Ρ‚ΡƒΡ‚ написана.

НачнСм с Π±ΡƒΠΊΠ²Ρ‹ S. Когда ядру ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ пСрСдаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ single, ядро запускаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ init Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° пСрСстаСт Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° всС строки, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, Π² ΠΏΠΎΠ»Π΅ run_level ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… стоит Π±ΡƒΠΊΠ²Π° S. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ дистрибутивы сконфигурированы Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π² этом случаС систСма Π·Π°ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния 1 (single user mode).

ДСйствиС sysinit ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, описанная Π² ΠΏΠΎΠ»Π΅ process Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ стартС систСмы, ΠΈ init Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° /etc/rc.d/rc.S Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ стартС систСмы. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня выполнСния Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ½Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΌΡ‹ Π΅Π΅ пропустим.

Π’ ΠΏΠΎΠ»Π΅ run_level присутствуСт Ρ†ΠΈΡ„Ρ€Π° Ρ‚Ρ€ΠΈ, поэтому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° /etc/rc.d/rc.M Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°. ДСйствиС wait ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ init Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΈΠ· Ρ„Π°ΠΉΠ»Π° inittab. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈ стартС систСмы Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° rc.M.

Π’ ΠΏΠΎΠ»Π΅ run_level этой строки Π½Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ стартС систСмы. Как Ρ‚ΠΎ странно ΠΏΡ€ΠΈ стартС сразу Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ shutdown. Но Π² ΠΏΠΎΠ»Π΅ дСйствиС присутствуСт интСрСсный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€: ctrlaltdel. Он заставляСт init ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш Ctrl(Π»Π΅Π²Ρ‹ΠΉ)+Alt(Π»Π΅Π²Ρ‹ΠΉ)+Del. И Ссли ΠΊΡ‚ΠΎ Ρ‚ΠΎ ΠΈΡ… Π½Π°ΠΆΠΌΠ΅Ρ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² ΠΏΠΎΠ»Π΅ process.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, залогинился ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π² систСму ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π›ΡŽΠ±ΠΎΠΉ проходящий ΠΌΠΈΠΌΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш ΠΈ систСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°.

Π­Ρ‚ΠΈ Π΄Π²Π΅ строки Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ ΡƒΡ€ΠΎΠ²Π½ΡŽ выполнСния Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚, поэтому ΠΌΡ‹ ΠΈΡ… пропускаСм.

ПолС run_level Π² этих строках пустоС, поэтому ΠΏΡ€ΠΈ стартС систСмы ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚. Но, init ΠΈΡ… Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ эти строки Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Ρƒ вас Π±Ρ‹Π» ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ UPS, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ вашСй машинС. А Ρ‚Π°ΠΊ ΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ UPS (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ genpowerd).

Если ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΏΠ°Π΄Π΅Ρ‚, Ρ‚ΠΎ UPS сообщит ΠΎΠ± этом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π° Ρ‚Π° Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ пСрСдаст ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ init, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ дСйствиС powerfail. Если ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ восстановится, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ дСйствиС powerokwait.

ПослС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ rc.S ΠΈ rc.M, init запускаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ agetty. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивах ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ другая вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НапримСр, Π² SuSE Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ mingetty. Π—Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€” ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ консоль Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ устройствС. Π’ нашСм случаС, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ консоли Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ… с 1-Π³ΠΎ ΠΏΠΎ 6-ΠΉ.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Slackware Liniux, Π½Π° 4-ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния (графичСский Π²Ρ…ΠΎΠ΄ Π² систСму) консоль инициализируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° 6-ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅.

Богласно дСйствия respawn, init запускаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π½Π΅ оТидая Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки. Но ΠΎΠ½ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΠΎΠ½ Π·Π° Π½ΠΈΠΌΠΈ слСдит. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ β€” init запускаСт Π΅Π΅ снова. ИмСнно поэтому, послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· систСмы Π½Π° экранС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° появляСтся ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π° Π² систСму.

Π­Ρ‚Π° строка Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° 4-ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния.

ДСйствия

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ»Π΅ дСйствиС.

initdefaultΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы.
sysinitΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ запускС систСмы самой ΠΏΠ΅Ρ€Π²ΠΎΠΉ. init Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π΅Ρ‘ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π² спискС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.
waitΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° запускаСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. init Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π² спискС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
onceΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° запускаСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. init Π½Π΅ ΠΆΠ΄Π΅Ρ‚ Π΅Ρ‘ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.
ctrlaltdelΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° клавиши «Ctrl+Alt+Del».
powerfailΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ процСссом init сигнала сбоя питания.
powerokwaitΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ процСссом init сигнала восстановлСния питания.
respawnΠŸΡ€ΠΎΡ†Π΅ΡΡ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½. init Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ окончания процСсса ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π² спискС строки. Если процСсс Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ – init запустит Π΅Π³ΠΎ снова.

Из ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Π² Slackware Linux Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния 3, init запускаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ эти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ описано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ БистСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Slackware Linux.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Команда init Π² Linux с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Π“Π»Π°Π²Π½ΠΎΠ΅ мСню Β» Linux Β» Команда init Π² Linux с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π€ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

Π£Ρ€ΠΎΠ²Π½ΠΈ выполнСния – это состояниС init, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π³Ρ€ΡƒΠΏΠΏΠ° процСссов, запускаСмых ΠΏΡ€ΠΈ запускС ОБ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ init для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ запуска, опрСдСляСтся Π² Ρ„Π°ΠΉΠ»Π΅ /etc/inittab. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство остановлСнных ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… слуТб. Условно сСмь ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ выполнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ числами ΠΎΡ‚ нуля Π΄ΠΎ ΡˆΠ΅ΡΡ‚ΠΈ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ выполнСния для распространСния Π½Π° основС Red Hat:

Π Π΅ΠΆΠΈΠΌΠ”Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ°Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ систСму1ΠžΠ΄Π½ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ рСТимНС настраиваСт сСтСвыС интСрфСйсы, Π½Π΅ запускаСт Π΄Π΅ΠΌΠΎΠ½ΠΎΠ²,

ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ root2ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ рСТимНС настраиваСт сСтСвыС интСрфСйсы ΠΈ Π½Π΅ запускаСт Π΄Π΅ΠΌΠΎΠ½ΠΎΠ².3ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ сСтиЗапускаСт систСму Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.4НСопрСдСлСнныйНС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ / опрСдСляСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ5X11Как ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ запуска 3 + диспСтчСр отобраТСния (X)6ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ систСму

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ большая Ρ‡Π°ΡΡ‚ΡŒ систСмы Π½Π° основС LINUX загруТаСтся Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния 3 ΠΈΠ»ΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния 5. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ стандартным уровням выполнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ прСдустановлСнныС ΡƒΡ€ΠΎΠ²Π½ΠΈ выполнСния ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π² соотвСтствии с трСбованиями. Π£Ρ€ΠΎΠ²Π½ΠΈ выполнСния 2 ΠΈ 4 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ выполнСния, Π° ΡƒΡ€ΠΎΠ²Π½ΠΈ выполнСния 0 ΠΈ 6 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для остановки ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы.

Если Π²Ρ‹ нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ, поТалуйста, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Enter.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

БистСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Linux. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ SysV ΠΈ systemd

Обновл. 12 Июл 2021 |

Π’ Linux ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ слуТбы β€” Π΄Π΅ΠΌΠΎΠ½Ρ‹ β€” Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΌΠΎΠ½Π°ΠΌΠΈ происходит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π―Π΄Ρ€ΠΎ, сразу послС своСй Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, запускаСт процСсс ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ запуску всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… слуТб ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Для этого считываСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π° основС описанных Π² Π½Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² начинаСтся запуск систСмы. Π”Π°Π½Π½Ρ‹ΠΉ процСсс ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся Π³Π»Π°Π²Π½Ρ‹ΠΌ (ΠΈΠ»ΠΈ Β«Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΡŒΠΊΠΈΠΌΒ») процСссом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ систСму ΠΈΠ· состояния «ядро Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎΒ» ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ «систСма Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅Β».

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ систСмС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SysV Π³Π»Π°Π²Π½Ρ‹ΠΌ процСссом являСтся процСсс init, Π° Π² систСмС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ systemd β€” (ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΉ) процСсс systemd.

Π‘ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Linux появилось большоС Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ систСм ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС ΠΈΠ· Π½ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ сравним SysV ΠΈ systemd.

Π‘ΠΏΠΎΡ€ Π²ΠΎΠΊΡ€ΡƒΠ³ систСм ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Linux

System V init (ΠΈΠ»ΠΈ просто Β«SysVΒ») β€” это систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, которая сущСствуСт со Π²Ρ€Π΅ΠΌΠ΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы System V, которая Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Π² 1983 Π³ΠΎΠ΄Ρƒ. SysV ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ систСмой ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Ρ€Π΅Ρ… дСсятилСтий (Π·Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ). МногиС IT-спСциалисты ΠΈ программисты Π² силу своСй ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ SysV, Π΄Π° ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΎΡ‡Π΅Π½ΡŒ простой для понимания.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с SysV Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π΅Ρ‘ основС Π»Π΅ΠΆΠ°Π»ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. SysV Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ возмоТности Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΡΡŠΠ΅ΠΌΠ½Ρ‹Ρ… носитСлСй, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° встроСнного ПО, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΡ€. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ использовании Π΄Π°Π½Π½ΠΎΠΉ систСмы, инициализация процСссов происходит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚.Π΅. ΠΎΠ΄Π½Π° Π·Π°Π΄Π°Ρ‡Π° запускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. Часто это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π—Π°Π΄Π°Ρ‡ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, послС Ρ‡Π΅Π³ΠΎ Β«Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ΡΡΒ». Но Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° нСдостаточно для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ управлСния сСрвисами, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊ сСбС постоянного внимания.

Π’ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ привнСсти большС возмоТностСй Π² процСсс ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Linux-систСм, компания Canonical Π² 2006 Π³ΠΎΠ΄Ρƒ вмСстС с Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ Ubuntu 6.10 (Edgy Eft) выпускаСт систСму ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Upstart, которая с самого Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΄Π΅ΠΌΠΎΠ½Ρ‹ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΈΡ… скриптах запуска.

Π”Ρ€ΡƒΠ³ΠΎΠΉ систСмой ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, восходящСй своими корнями ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС 4.4BSD, являСтся rc.init. Она примСняСтся Π² Ρ‚Π°ΠΊΠΈΡ… дистрибутивах, ΠΊΠ°ΠΊ: FreeBSD, NetBSD ΠΈ Slackware. Π’ 2007 Π³ΠΎΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Gentoo выпустили ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄Π°Π½Π½ΠΎΠΉ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, сдСлав Π΅Ρ‘ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΈ Π½Π°Π·Π²Π°Π² OpenRC. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивов Linux историчСски ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SysV.

Π’ 2010 Π³ΠΎΠ΄Ρƒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Red Hat Π›Π΅Π½Π½Π°Ρ€Ρ‚ ΠŸΡ‘Ρ‚Ρ‚Π΅Ρ€ΠΈΠ½Π³ ΠΈ КСй БивСрс приступили ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” systemd, которая Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ нСдостатков, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² SysV. Π’ состав systemd, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ входят ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск процСссов, сокращая Ρ‚Π΅ΠΌ самым врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы ΠΈ количСство Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… вычислСний. ВСсной Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π³ΠΎΠ΄Π° Fedora 15 стала ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ дистрибутивом, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ использовалась систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ systemd. ПослС Ρ‡Π΅Π³ΠΎ, Π½Π° протяТСнии ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Ρ… Π»Π΅Ρ‚, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ дистрибутивов массово ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π½Π° systemd.

Но, Ссли всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ дистрибутивы ΠΎΡ‚Π΄Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ systemd ΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Π΅Ρ‘ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ систСмой ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ для прСдприятий, Ρ‚Π°ΠΊ ΠΈ для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ споров Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Π΅?

systemd, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с SysV ΠΈ Upstart, содСрТит большоС количСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚Π΅ΡΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с систСмой, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ объСм выполняСмой Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π§Ρ‚ΠΎ Π² этом ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ? Ну, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ зависит ΠΎΡ‚ systemd ΠΈ/ΠΈΠ»ΠΈ ΠΎΡ‚ любой ΠΈΠ· Π΅Ρ‘ многочислСнных слуТб (journald, udevd, consoled, logind ΠΈΠ»ΠΈ networkd), Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ПО становится ΠΌΠ΅Π½Π΅Π΅ совмСстимым с систСмами, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… systemd Π½Π΅ примСняСтся. По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ количСство слуТб, прСдоставляСмых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ systemd, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ расти, systemd сама становится всС Π±ΠΎΠ»Π΅Π΅ зависимой ΠΎΡ‚ Π½ΠΈΡ….

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ systemd становится ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, ΠΈ Π΅Ρ‘ повсСмСстноС распространСниС Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ прСпятствуСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся пСрСносимым ΠΈ совмСстимым с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ systemd. Но Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ всё Ρ‚Π°ΠΊ ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅Ρ‚. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ Ρƒ людСй Π΅ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΈΠ· наличия Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… систСм ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ Π½Π΅Ρ‚ Π²ΠΈΠ½Ρ‹ systemd Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ основныС дистрибутивы ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π½Π΅Π΅ ΠΈΠ·-Π·Π° Π΅Ρ‘ плюсов.

БистСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Linux

System V init (ΠΈΠ»ΠΈ просто Β«SysVΒ») β€” это систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, которая сущСствуСт со Π²Ρ€Π΅ΠΌΠ΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы System V.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: System V β€” это пСрвая коммСрчСская UNIX-подобная опСрационная систСма, которая Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Π² 1983 Π³ΠΎΠ΄Ρƒ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ init (ΠΎΡ‚ Π°Π½Π³Π». Β«initializationΒ») β€” это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ запускаСмый Π² систСмС процСсс (Π½Π΅ считая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ядра), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ (прямым ΠΈΠ»ΠΈ косвСнным) всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… процСссов, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ присваиваСтся PID=1.

Если процСсс init ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ смог ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ запуска ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… процСссов ΠΈ систСма ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² особоС (Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠ΅ появлСниСм критичСской ошибки) состояниС ядра, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Kernel Panic.

Π’ SysV имССтся ΡˆΠ΅ΡΡ‚ΡŒ состояний систСмы, извСстных ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π½ΠΈ выполнСния (runlevels), ΠΈ всСм процСссам ΠΈ слуТбам сопоставляСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ выполнСния. Данная систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простыС Π² использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для управлСния уровнями выполнСния ΠΈ связанными с Π½ΠΈΠΌΠΈ слуТбами.

Runlevel 0 β€” Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы.

Runlevel 1 β€” ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π§Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² цСлях обслуТивания ΠΈ выполнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… административных Π·Π°Π΄Π°Ρ‡. Π­Ρ‚ΠΎΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Runlevel S (ΠΎΡ‚ Π°Π½Π³Π». Β«Single-userΒ»). Если Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π½Π° Linux, Ρ‚ΠΎ Π²Ρ‹ вСроятно ΡƒΠΆΠ΅ пользовались этим Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ.

Runlevel 2 β€” ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ (Π°Π½Π³Π». Β«multi-userΒ») Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сСтСвых слуТб.

Runlevel 3 β€” ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ сСти, Π½ΠΎ Π±Π΅Π· графичСского интСрфСйса. Π§Π°Ρ‰Π΅ всСго сСрвСрныС вСрсии Linux Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° этом ΡƒΡ€ΠΎΠ²Π½Π΅ выполнСния.

Runlevel 4 β€” Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ этот ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ исходя ΠΈΠ· Π΅Π³ΠΎ Ρ†Π΅Π»Π΅ΠΉ.

Runlevel 5 β€” схоТ с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ 3, Π½ΠΎ здСсь запускаСтся графичСский интСрфСйс. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ дСсктопныС вСрсии Linux.

Runlevel 6 β€” ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ систСму.

ЗначСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ уровня выполнСния Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ вашСго дистрибутива Linux. Π•ΡΡ‚ΡŒ дистрибутивы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ubuntu), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Runlevel 2 для ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ° с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ сСти, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ дистрибутивы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Fedora) для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ самого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Runlevel 5.

Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ SysV, ядро запускаСт Ρ„Π°ΠΉΠ» /sbin/init, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ выполняСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ β€” /etc/inittab. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π·Π°Π΄Π°Π΅Ρ‚ ΡƒΡ€ΠΎΠ²Π½ΠΈ выполнСния для всСй систСмы, опрСдСляСт, для ΠΊΠ°ΠΊΠΈΡ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² слСдуСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ getty (процСссы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°), запускаСт процСссы Π²Ρ…ΠΎΠ΄Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», запускаСт скрипт /etc/init.d/rcS, Π° Ρ‚Π°ΠΊΠΆΠ΅ влияСт Π½Π° порядок выполнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… runlevel-скриптов.

Запуск слуТб происходит Π² Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скрипт Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ запуска выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ скрипт. Если Π²ΠΎ врСмя своСго выполнСния скрипт зависнСт, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ скрипту придСтся ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π½Π΅ истСчСт врСмя оТидания. Данная нСпрСдвидСнная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° исполнСния скрипта Π΄Π΅Π»Π°Π΅Ρ‚ вСсь процСсс ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы ΠΌΠ΅Π½Π΅Π΅ эффСктивным ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС, Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ.

ΠšΡ€ΠΎΠΌΠ΅ этого, Ρƒ SysV Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ‚.Π½. Β«hot-plugΒ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ устройств: Ссли опСрационная систСма ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π°ΡΡŒ ΠΈ находится Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии, ΠΈ Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ ΠΊ Π½Π΅ΠΉ USB-устройство, Ρ‚ΠΎ SysV Π½Π΅ распознаСт Π΄Π°Π½Π½ΠΎΠ΅ USB-устройство.

Π’ ОБ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ систСму ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SysV, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ присутствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для управлСния слуТбами Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС слуТбы ΠΈΠ»ΠΈ всСх слуТб, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ слуТбу ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄:

# service status (ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ статуса ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ слуТбы)

# service start|stop (запуск/остановка ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ слуТбы)

systemd

systemd β€” это ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ новая систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Linux, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для запуска ΠΈ управлСния всСми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ процСссов ΠΈ слуТб (Π° Ρ‚Π°ΠΊΠΆΠ΅ устройствами, сокСтами, Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ монтирования, ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ, модулями ΠΈ ΠΏΡ€.).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ проСктирования Π΄Π°Π½Π½ΠΎΠΉ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎ словам Π›Π΅Π½Π½Π°Ρ€Ρ‚Π° ΠŸΡ‘Ρ‚Ρ‚Π΅Ρ€ΠΈΠ½Π³Π°, Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° systemd, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ мСньшС, Ρ€Π°ΡΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ²Π°Ρ‚ΡŒ большС». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ запускаСтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ процСссы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сто ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для привСдСния систСмы Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ состояниС, ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ выполняСтС ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡. ВсС Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ (ΠΏΡ€ΠΈ использовании SysV) Π±Ρ‹Π»ΠΈ Β«Ρ€Π°Π·ΠΌΠ°Π·Π°Π½Ρ‹Β» ΠΏΠΎ мноТСству Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… скриптов, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ β€” lib/systemd/systemd. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ systemd Π²Ρ‹ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU GPL, Π½ΠΎ Π² дальнСйшСм Π΅Ρ‘ смСнили Π½Π° GNU LGPL.

Unit β€” это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Π·ΡΡ‚ΡƒΡŽ слуТбу, Ρ‚ΠΎΡ‡ΠΊΡƒ монтирования, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ΅ устройство, Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ рСсурсы.

Target β€” это Π°Π½Π°Π»ΠΎΠ³ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ выполнСния ΠΈΠ· SysV, состоящий ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… unit-ΠΎΠ².

systemd выполняСт unit для достиТСния target. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /lib/systemd/system/.

Для управлСния слуТбами Π² systemd примСняСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° β€” systemctl. НапримСр:

# systemctl enable sshd (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ sshd)

# systemctl start sshd (запуск sshd)

# systemctl stop sshd (остановка sshd)

# systemctl status sshd (ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состояния sshd)

# systemctl list-units (ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ)

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π² Π½Π°Π±ΠΎΡ€Π΅ инструмСнтов systemd являСтся ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° journalctl. Она позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ Π»ΠΎΠ³ΠΎΠ² journald. Π›ΠΎΠ³-Ρ„Π°ΠΉΠ» systemd являСтся Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΈ использованиС journalctl сильно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½ΠΈΠΌ. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

# journalctl –all (ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ содСрТимого всСго Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»Π°)

ΠŸΠ»ΡŽΡΡ‹ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ systemd:

Новый, соврСмСнный ΠΈ эффСктивный Π΄ΠΈΠ·Π°ΠΉΠ½.

Π‘ΠΎΠ»Π΅Π΅ простой процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ систСмы.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ синтаксис unit-Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ удалСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Низкий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ потрСблСния рСсурсов.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ зависимостСй.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссов хранится Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π° Π½Π΅ Π² скриптС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ с использованиСм systemd Calendar Timers.

Π’Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слуТбы journald.

Π›ΠΎΠ³-Ρ„Π°ΠΉΠ»Ρ‹ хранятся Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ….

БостояниС systemd ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСно для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ исполняСмого процСсса Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ cgroup.

Π’Ρ…ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² систСму управляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ systemd-logind.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ интСграция с GNOME для обСспСчСния совмСстимости.

ΠœΠΈΠ½ΡƒΡΡ‹ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ systemd:

Всё собрано Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС.

НС соотвСтствуСт стандартам POSIX.

Дистрибутивы Linux Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ
FedoraΠ”Π° (это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ дистрибутив, ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π΄ΡˆΠΈΠΉ Π½Π° systemd).
ArchΠ”Π°.
RHELΠ”Π°.
CentOSΠ”Π°.
DebianΠ”Π°, начиная с 8-ΠΉ вСрсии.
OpenSUSEΠ”Π°.
SlackwareНСт.
UbuntuΠ”Π°.

Upstart

Upstart β€” это гибридная систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ скрипты запуска SysV, Ρ‚Π°ΠΊ ΠΈ сцСнарии systemd), созданная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ дистрибутива Ubuntu Π² качСствС Π·Π°ΠΌΠ΅Π½Ρ‹ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SysV. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ SysV, которая создавалась для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² статичСском ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, Upstart ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°Π»Π°ΡΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с SysV, Π² Upstart ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ основных прСимущСства, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ слуТбами Π½Π° основС событий (вмСсто ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ выполнСния), асинхронный запуск слуТб ΠΈ автоматичСский пСрСзапуск Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… слуТб.

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ SysV Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Upstart Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ событиями модСль, которая позволяСт асинхронно Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° основныС этапы запуска слуТб ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… достиТСния. Для этого Π² Upstart ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ задания, прописанныС Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π² /etc/init/*.conf, Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сСкции скрипта, отвСтствСнной Π·Π° созданиС процСсса. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, инициализация систСмы ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ» Β«ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ процСсс X ΠΏΡ€ΠΈ наступлСнии события YΒ».

Когда происходит ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ событиС, Upstart ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ это событиС ΠΈ вносит Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ связано с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ состояниями систСмы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: USB-Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ/извлСкаСтся ΠΈΠ· систСмы ΠΈΠ»ΠΈ запускаСтся/останавливаСтся слуТба.

Но ΠΈ Ρƒ Π΄Π°Π½Π½ΠΎΠΉ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ свои минусы. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π΅Ρ‘ основС Π·Π°Π»ΠΎΠΆΠ΅Π½Π° событийная модСль рСагирования, Ρ‚ΠΎ вмСсто выполнСния Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ минимального объСма Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для привСдСния систСмы Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ состояниС, ΠΏΡ€ΠΈ срабатывании события Upstart выполняСт всС задания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° Π½ΠΈΠΌ. НапримСр, Ссли Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ»Π°ΡΡŒ ΡΠ΅Ρ‚ΡŒ, это Π΅Ρ‰Π΅ Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ NFS (сокр. ΠΎΡ‚ Β«Network File SystemΒ») Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ. На самом Π΄Π΅Π»Π΅, коррСктная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ являСтся ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ: ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ доступ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ рСсурсу NFS, систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΠ΅Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Для управлСния ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ запуска Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… слуТб Π² Upstart примСняСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° β€” initctl, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ initctl status (ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состояния слуТбы)

$ initctl list (ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка слуТб)

# initctl start|stop (запуск/остановка слуТбы)

OpenRC

OpenRC β€” это кроссплатформСнная систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС зависимостСй, которая совмСстима с SysV. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ OpenRC вносит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² SysV, ΠΎΠ½Π° Π½Π΅ являСтся Π΅Ρ‘ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ.

ΠœΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… дистрибутивах Linux, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Gentoo.

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с отслСТиваниСм состояния.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ рСсурсов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ слуТбы.

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° основС зависимостСй.

ЗапускаСтся Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΠΌΠΎΠ½Π°.

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск слуТб ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

runit

runit β€” Ρ‚Π°ΠΊΠΆΠ΅ кроссплатформСнная систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Solaris, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах сСмСйства BSD ΠΈ macOS. Π’ Ρ†Π΅Π»ΠΎΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° SysV. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сама ΠΏΠΎ сСбС ΠΈΠ»ΠΈ ΠΆΠ΅ Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ для SysV, systemd, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² сочСтании с OpenRC.

К основным прСимущСствам runit относятся:

Быстрая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ систСмы.

Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° процСсса ΠΈ ротация Π»ΠΎΠ³ΠΎΠ².

АвтоматичСскоС Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ запуск сСрвисов ΠΏΡ€ΠΈ появлСнии Π½ΠΎΠ²Ρ‹Ρ… сСрвисов Π² спискС, Π»ΠΈΠ±ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ старых ΠΈΠ· списка.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вСдСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… нСзависимых списков сСрвисов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ для систСмы Π² Ρ†Π΅Π»ΠΎΠΌ).

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ SysV ΠΈ systemd

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ SysV systemd
Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ D-BusНСтДа
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ устройствами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ udevНСтДа
Активация ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒcron/atΠŸΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Π°Ρ
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ квотамиНСтДа
АвтоматичСская ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° зависимостСй слуТбНСтДа
Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ процСссов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· систСмыНСтДа
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пространством подкачкиНСтДа
Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ SELinuxНСтДа
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… HDDНСтДа
Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° статичСских ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядраНСтДа
ГрафичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI)НСтДа
ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ всСх Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… процСссовНСтДа
Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с SysVΠ”Π°Π”Π°
Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ загрузкаНСтДа
ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ x86 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ процСссораДаНСт
ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск слуТбНСтДа
ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ рСсурсов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ слуТбыНСтДа
Π›Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ скрипт автозагрузкиДаНСт
Π Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ» конфигурацииДаНСт
АвтоматичСский расчСт зависимостСйНСтДа
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ информацииДаНСт
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²75 Ρ„Π°ΠΉΠ»ΠΎΠ²900 Ρ„Π°ΠΉΠ»ΠΎΠ² + Glib + D-Bus

Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ какая систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρƒ мСня?

Бпособ β„–1: Команда ps

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ps ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ процСссС, Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ grep ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для опрСдСлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π€ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π€ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

Fedora 34 Workstation

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π² Debian ΠΈ Fedora ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ systemd.

Π’ случаС использования систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SysV, Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π€ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

Если ΠΆΠ΅ Ρƒ вас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Upstart, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅:

Бпособ β„–2: Команда rpm

rpm (сокр. ΠΎΡ‚ Β«Red Hat Package ManagerΒ») β€” это мощная консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° управлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Π² дистрибутивах RHEL, CentOS, Fedora, openSUSE ΠΈ Mageia. Команда rpm позволяСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, какая систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ установлСна, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: /usr/sbin/init ΠΈΠ»ΠΈ /sbin/init β€” это исполняСмый Ρ„Π°ΠΉΠ», Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ систСму ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SysV. По сообраТСниям совмСстимости ΠΏΡ€ΠΈ установкС systemd Ρ„Π°ΠΉΠ» /sbin/init являСтся псСвдонимом (ΠΈΠ»ΠΈ символьной ссылкой) исполняСмого Ρ„Π°ΠΉΠ»Π° систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ systemd.

init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π€ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

Fedora 34 Workstation

Π’ случаС использования систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SysV, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Π’ случаС использования систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Upstart, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π€ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π€ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅. Π€ΠΎΡ‚ΠΎ init linux Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² нашСй ОБ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ systemd.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях:

GNU/Linux ΠΈΠ»ΠΈ Linux? Π‘ΠΏΠΎΡ€ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *