суббота, 29 ноября 2008 г.

[Техно] ...Ubuntu-сервер продолжение

Ура! Это свершилось... Моя дорогая африканка воцарилась на сервере, т.к. dhcp норнально заработал. А помогло мне это сделать великое Open Source - сообщество.

Итак проблема с dhcp заключалась в том, что он почему-то падал после старта NetworkManager'а. Поэтому он был остановлен:

sudo /etc/init.d/NetworkManager stop

И из папок автозагрузки (rc.d) были удалены все его ссылки. А сеть настроена вручную правкой файла /etc/network/interface

# Обратная петля
auto lo
iface lo inet loopback

# Ethernet карта со статическим IP
auto eth0
iface eth0 inet static
address Х.Х.Х.X #ваш IP-адрес, например 192.168.0.1
netmask 255.255.255.X #маска сети
gateway Х.Х.Х.X# IP-адрес шлюза (необязательно)
hwaddress ether XX:XX:XX:XX:XX:XX #ваш MAC-адрес (необязательно)
broadcast Х.Х.Х.X #широковещательный запрос
dns-nameservers Х.Х.Х.X Х.Х.Х.Х #первичный и вторичный DNS


# Ethernet карта конфигурируеся по DHCP
auto eth1
iface eth1 inet dhcp

Сохраняем и перезапускаем сеть

sudo /etc/init.d/networking restart

Выключить любое соединение можно командой:

sudo ifconfig ethX down

где Х - номер сетевой карты.

Хотелось бы отдельно коснуться этих папок, их в системе 8 шт. соответсвующие runlevel (0-6) :
/etc/rc0.d - уровень исполнения 0, выполняет скрипт при выключении системы.
/etc/rc1.d - уровень исполнения 1, однопользовательский режим (single user mode) аналогичен Safe Mode в Windows.
/etc/rc2.d - уровень исполнения 2, многопользовательский консольный режим
/etc/rc3.d - уровень исполнения 3, зарезервированно
/etc/rc4.d - уровень исполнения 4, зарезервированно
/etc/rc5.d - уровень исполнения 5, многопользовательский графический режим
/etc/rc6.d - уровень исполнения 6, выполнение при при перезагрузки

Папки содержат символические ссылки на скрипты в /etc/init.d/ с именем вида:

ABBName

где
А - действие: K - завершить, S - запустить
BB - последовательность запуска: 0 - 99 чем меньше число, тем скорее исполниться скрипт
Name - имя скрипта из /etc/init.d

Например, запуск скрипта старта dhcp у меня:

S02dhcp3-server

Ссылки можно создать вручную, например:

sudo ln -s /etc/ini.d/dhcp3-server /etc/rc3.d/S02dhcp3-server

или с помощью команды:

в Debian:

sudo ls -l /etc/rc?.d/*dhcp3-server - просмотреть на каких уровнях прописаны скрипты
sudo update-rc.d dhcp3-server defaults - установить запуск по умолчанию
sudo update-rc.d dhcp3-server start 20 2 3 4 5 - установить на уровни 2, 3, 4, 5 на запуск 20-м
sudo update-rc.d dhcp3-server remove - убрать запуск

Fedora Core
sudo chkconfig --list dhcp3-server - просмотреть на каких уровнях прописаны скрипты
sudo chkconfig --add dhcp3-server - установить запуск по умолчанию
sudo chkconfig --level 2345 dhcp3-server on - установить на уровни 2, 3, 4, 5 на запуск
sudo chkconfig --del dhcp3-server - убрать запуск

SuSE
sudo chkconfig dhcp3-server - просмотреть на каких уровнях прописаны скрипты
sudo chkconfig dhcp3-server on - установить запуск по умолчанию
sudo chkconfig dhcp3-server 2345 - установить на уровни 2, 3, 4, 5 на запуск
sudo chkconfig dhcp3-server off - убрать запуск

в Gentoo:

sudo rc-update add dhcp3-server default

Аргументы следующие: действие init.d_скрипт уровен_загрузки
Действие может быть:add/on (добавить), del/off/remove (удалить) или show (показать).
Уровни запуска: boot, default, nonetwork и single. Уровень boot запускает все службы, необходимые системе и используемые всеми остальными уровнями. Остальные уровни отличаются друг от друга запускаемыми службами: default используется для повседневной работы, nonetwork — для тех случаев, когда не требуется сеть, а single — при необходимости восстановления системы.


В папке /etc/init.d расположены сами скрипты. Каждый сценарий из /etc/init.d может запускаться с аргументами start, stop, restart, pause, zap, status, reload, force-reload, ineed, iuse, needsme, usesme и broken. Параметры зависят в основном от самих скриптов и вашего дистрибутива, обязательными же являются start и stop.

Для запуска, остановки или перезапуска службы (и всех, зависящих от нее) следует использовать start, stop и restart.

Обычно для прочтения демоном новых настроек без его остановки используют reload.

Если вы хотите остановить службу, но оставить зависимые от нее работающими, можно использовать аргумент pause.

Чтобы узнать текущее состояние службы (запущена, остановлена, приостановлена и т.д.), можно использовать аргумент status.

Если указано, что служба работает, но вы знаете, что это не так, можно сбросить состояние на stopped (остановлена), используя аргумент zap.

Для того, чтобы выяснить зависимости службы, можно использовать аргументы iuse или ineed. С помощью ineed вы увидите те службы, которые действительно необходимы для правильного функционирования интересующей вас службы. С другой стороны, iuse покажет те службы, которые могут использоваться нашей службой, но не обязательны для ее работы.

Аналогично вы можете узнать, какие службы нуждаются в данной службе (needsme) или могут ее использовать (usesme).

Наконец, можно просмотреть список служб, требующихся для данной, но отсутствующих в системе (broken).

В отличии от многих других классический Linux дистрибьютивов (Slackware), Ubuntu и Debian использует upstart для запуска скриптов инициализации. Поэтому не удивляйтесь, если в /etc/ не окажется файла inittab (его заменили скрипты upstart, которые находятся в /etc/event.d). Upstart это замена демону init, которая контролирует процессы и задачи во время загрузки, выключения системы и непосредственно во время работы.

Кроме того в системе есть скрипт /etc/rc.local, также предназначенный для целей автозапуска. Занеся в который любую команду, до строки exit0, вы получите ее исполнение.

По материалам: www.gentoo.org, www.openkazan.info/node/1531, linsovet.com/rc.d-add-remove и моей светлой головы :)

Комментариев нет: