Старт системы (В какой момент стартует bash?)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
Русик
Сообщения: 13
ОС: Mandrake 7.0

Старт системы

Сообщение Русик »

Нашёл много подробных описаний, как происходит старт системы, как процесс №1 запускает в соответствии с inittab системные службы и сервисы и т.п. При этом исполняется масса скриптов.
Кто разбирает эти скрипты? Сама программа init или она вызывает каждый раз (на каждый скрипт) оболочку bash, создаёт ради этого новый процесс, а потом убивает его? Если второе, то откуда init знает, где искать bash и какой bash, если в системе их много (разные виды)? Это же где-то определено должно быть...
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: Старт системы

Сообщение BlackStar »

Это определено в первой строчке скрипта (e.g. #!/bin/bash)
LightLang Team
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Старт системы

Сообщение elide »

Код: Выделить всё

elide@serenity| ~ >> grep sys /etc/inittab
rc::sysinit:/etc/rc.sysinit
elide@serenity| ~ >> head -n1 /etc/rc.sysinit
#!/bin/sh
elide@serenity| ~ >>
вот из вот этого вот #!/bin/sh он и узнает... вернее даже не он, но это уже детали...
init запускает эти скрипты совершенно штатным образом, поэтому никто не запрещает делать их вовсе не скриптами на sh, а вовсе даже ELF бинарниками, или скриптами на perl, скажем....
слава роботам!
Спасибо сказали:
Аватара пользователя
Русик
Сообщения: 13
ОС: Mandrake 7.0

Re: Старт системы

Сообщение Русик »

Кой-чё прояснилось, спасибо!
А для исполнения скрипта не любой shell годится? Ну, в смысле функциональность шеллов тоже ведь различается: bash и ash по объёму файла в несколько раз отличаются. Скрипт под конкретную оболочку пишется? Ведь /bin/sh, на к-й указано в начале скрипта, может быть просто линком на минималистический ash...
Спасибо сказали:
Аватара пользователя
uptime
Сообщения: 1661
Статус: Drinker with computing problems
ОС: kubuntu 8.04

Re: Старт системы

Сообщение uptime »

Собственные скрипты можно писать под то, что нравится.
Однако хорошим тоном считается написание переносимых скриптов. В качестве стандарта прият набор команд sh (AFAIK).
The answer, my friend, is blowin' in the wind.
The answer is blowin' in the wind.
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Старт системы

Сообщение Rootlexx »

Не любой. Но совместимый с sh годится. Как раз эта ссылка (/bin/sh) и должна указывать на такую оболочку.
А оболочки с C-подобным синтаксисом: csh, tcsh... - не сгодятся.
Спасибо сказали:
Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: Старт системы

Сообщение Jan2ary »

Таким же образом пишутся скрипты под awk, perl, python etc...
Естественно, что это будут скрипты только под определенный язык.
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали:
Аватара пользователя
Русик
Сообщения: 13
ОС: Mandrake 7.0

Re: Старт системы

Сообщение Русик »

awk, perl, python etc...
Так далеко мои мысли не заходили :D Надеюсь, пока что... :D
Я подразумевал просто shell'ы, которые bash-совместимые. Ну, типа, заменю я в системе bash на ash - выполнение скриптов от этого не нарушится? Вдруг ash меньше умеет...
А если они все написаны в соответствии с неким sh-стандартом, то откуда такой разный размер самих бинарников? Собственно, я уже повторяюсь...
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Старт системы

Сообщение elide »

А если они все написаны в соответствии с неким sh-стандартом, то откуда такой разный размер самих бинарников? Собственно, я уже повторяюсь...
sh - это база. набор команд и функций sh - должны уметь все.
а размер бинарников зависит от объёма _дополнительных_ и _необязательных_ возможностей.
слава роботам!
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Старт системы

Сообщение Rootlexx »

(elide @ Feb 8 2007, в 20:55) писал(а):набор команд и функций sh - должны уметь все.

Ну, не совсем все. Так ещё и fish в sh-совместимые запишем. :) А в ash, если память не подводит, нет автодополнения команд, истории команд, поддержки фонового режима... Но если в начале скрипта стоит #!/bin/sh, то он должен работать во всех sh-совместимых шеллах. Правда, если /bin/sh - ссылка на bash, то при таком вызове все функции bash будут недоступны, а только универсальные для всех оболочек. Вообще советую почитать это.
Спасибо сказали:
Аватара пользователя
Русик
Сообщения: 13
ОС: Mandrake 7.0

Re: Старт системы

Сообщение Русик »

RootLeXX писал(а):
09.02.2007 13:15
Вообще советую почитать это.


Спасибо, вещь крайне полезная. Большая часть вопросов про шеллы отпадает до того, как я успел их задать :D
Спасибо сказали: