LINUX.ORG.RU

Ответ на: комментарий от upcFrost

Тут не о чем путаться. Процесс с pid=1 является родоначальником всех процессов в пространстве пользователя. Запускается непосредственно ядром, сразу после того как ядро примонтирует корневой раздел, при этом ядро вылавливает его в корневом разделе по пути /sbin/init, при этом происходит как раз инициализация системы, запускаются все сервисы, для этого используются инициализационные скрипты. sysVinit это как раз init+скрипты, ну там ещё утилиты вспомогательные есть вроде service, invoke-rc.d, chkonfig. А ещё бывает BSD-style init, там скрипты попроще и вспомогательных утилит нет. Но тут не рассказывать, а показывать надо, короче ставишь слаку и иссследуешь. А ещё есть бесскриптовые системы инициализации: systemd и upstart, там /sbin/init является симплинком на /sbin/systemd или /sbin/upstart и скриптов там нет, но есть юниты или джобы.

sunny1983 ★★★★★
()
Последнее исправление: sunny1983 (всего исправлений: 1)
Ответ на: комментарий от depo

Инит это хоть скрипт на баше, главное чтобы он никогда не завершался, те в конце вставить бесконечный цикл. Ещё он должен получать коды возврата всех чайлдов через wait() чтобы зомби процессов не было (в баш скрипте писать для этого ничего не нужно, баш сам обрабатывает).

anonymous
()
Ответ на: комментарий от sunny1983

спасибо капитан. только отвечать ТСу надо было, а не мне

upcFrost ★★★★★
()
Ответ на: комментарий от anonymous

Ошибаешься. В init-скриптах нет бесконечного цикла, сначала запускается /etc/rc.S, потом он вызывает все остальные скрпипты командой точка (source). В самом конце запускается getty.

sunny1983 ★★★★★
()
Ответ на: комментарий от sunny1983

В классичесих инитах, про которые ты рассказываешь сам инит — бинарник, и в нём есть бекуконечный цикл с wait(). Всякие скрипты и getty это его чайлды.

anonymous
()
Ответ на: комментарий от sunny1983

В init-скриптах нету, зато в /sbin/init есть (любом, хоть sysv, хоть bsd, хоть systemd).

deadNightTiger ★★★★★
()
Ответ на: комментарий от anonymous

Раз уж тема такая пошла, давай разберём. У init, судя по конфигу /etc/inittab из начально 8 чайдов: bash (выполняющий цепочку скриптов, начиная с /etc/rc.d/rc.S) и 7 экземпляров getty. После того, как какой-либо процесс завершается, родителем его чайлдов становиться init, поэтому init - родитель всех сервисов. Но тем не менее перезапускать сервисы в случае их зависания init не умеет.

sunny1983 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.