OpenRC (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи OpenRC. Дата последней синхронизации: 3 февраля 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Важно: Arch Linux официально поддерживает только systemd. При обращении за поддержкой, пожалуйста, укажите, что пользуетесь OpenRC

OpenRC - менеджер служб, поддерживаемый разработчиками Gentoo. Это система инициализации на основе зависимостей, которая работает вместе с программой инициализации SysVinit.

Установка

OpenRC и сопутствующие пакеты доступны в AUR. Для получения подробной информации о компонентах инициализации смотрите Init.

Установите пакет openrcAUR или openrc-gitAUR[ссылка недействительна: package not found]. С версии 0.25 OpenRC предоставляет собственный init (/usr/bin/openrc-init). В качестве альтернативы можно использовать busybox. Файлы сервисов содержатся в пакете openrc-arch-services-gitAUR.

Для поддержки совместимости с initscripts-forkAUR, файлы настроек будут установлены в /etc/openrc/. Бинарный sysvinit init устанавливается в /usr/bin/openrc-init для совместимости с systemd-sysvcompat или подобных пакетов.

Загрузка

Для загрузки с OpenRC, добавьте init=/usr/bin/openrc-init в параметры ядра. Чтобы вернуться к systemd, удалите этот параметр ядра.

Каталог /etc/openrc/conf.d, и файл /etc/openrc/rc.d используются для настройки.

Использование

В этом разделе проводится параллель между systemd и другими системами init.

Вы можете опустить расширения .service и .target, особенно при временном редактировании kernel parameters.

systemd SysVinit OpenRC Description
systemctl list-units rc.d list rc-status Список состояний запущенных служб.
systemctl --failed rc-status --crashed Проверка отказавших служб.
systemctl --all rc-update -v show Отображение всех доступных служб.
systemctl (start, stop, restart, status) daemon.service rc.d (start, stop, restart) daemon rc-service daemon (start, stop, restart, status) Изменить состояние службы.
systemctl (enable, disable) daemon.service chkconfig daemon (on, off) rc-update (add, del) daemon Включить или выключить службу.
systemctl daemon-reload chkconfig daemon --add Создание или изменение конфигурации.


Настройка

Для получения общей информации о настройке OpenRC смотрите:

Подготовка

Смотрите Init#Configuration.

Службы

Службы OpenRC включаются от имени суперпользователя (root) используя rc-update add имя службы runlevel. По крайней мере рекомендуется включить следующие службы:

Имя службы Runlevel Описание
udev sysinit Устройство горячего подключения
alsa default ALSA state
acpid default ACPI events
dbus default Шина сообщений
dcron default Планировщик
syslog-ng default Системные журналы (логи)

Смотрите также Native services и демоны.

Сеть

Для общей информации по сети смотрите Network configuration.

Сеть настраивается с помощью newnet. [1] Измените файл /etc/openrc/conf.d/network; поддерживаются обе команды ip (iproute2) и ifconfig (net-tools). Ниже приведён пример с использованием ip.

ip_eth0="192.168.1.2/24"
defaultiproute="via 192.168.1.1"
ifup_eth0="ip link set \$int mtu 1500"

Сетевой сервис добавляется в загрузочный уровень по умолчанию, так что дальнейшие действия не требуются.

Примечание: Вы также можете воспользоваться NetworkManager, dhcpcd или netcfgAUR включая соответствующие сервисы. netcfgAUR имитирует поведение netctl (смотрите [2] если вы хотите включать профили соединения при загрузке - требующие wpa_actiond). Вы можете проконсультироваться с официальной документацией или старой wiki документацией (последняя версия 2012-05-13)

Логи загрузки

Чтобы включить ведение журнала загрузки, раскомментируйте строку rc_logger="YES" в /etc/openrc/rc.conf. Когда он включен, журналы загрузки хранятся в /var/log/rc.log

Имя хоста (Hostname)

OpenRC устанавливает имя хоста из /etc/openrc/conf.d/hostname. Файл выглядит следующим образом:

# Set to the hostname of this machine
hostname="myhostname"

Модули ядра

OpenRC использует /etc/openrc/conf.d/modules вместо /etc/modules-load.d. Например:

/etc/openrc/conf.d/modules
# Вы должны ознакомится с настройками и документацией вашего ядра
# для списка модулей и их параметров.

modules="vboxdrv acpi_cpufreq"

Локаль

Раскладка клавиатуры настраивается с помощью /etc/openrc/conf.d/keymaps и /etc/openrc/conf.d/consolefont. Вы также можете настроить параметры через файл /etc/locale.conf, который получается с помощью /etc/profile.d/locale.sh.

Смотрите [3] и Locale для подробностей.

Советы и рекомендации

Тихая загрузка

Чтобы скрыть загрузочные сообщения из OpenRC, вы можете отредактировать /etc/inittab и добавить --quiet к каждой команде openrc. Дополнительную информацию можно найти в $ openrc -h.

Решение проблем

Ошибка при размонтировании /tmp

При выключении системы, вы можете получить сообщение об ошибке, например:

* Unmounting /tmp ... 
* in use but fuser finds nothing [ !! ]

Это можно исправить путем добавления

no_umounts="/tmp"

в /etc/openrc/conf.d/localmount

Примечание: Эта проблема проявляется только если ваш tmp примонтирован как tmpfs.

Не работает отключение IPv6

Одним из вариантов является добавление:

# Disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1

в файле с расширением .conf в /etc/openrc/sysctl.d

Во время выключения, и перемонтирования раздела root, происходят ошибки чтения

Если такое происходит, отредактируйте файл /etc/openrc/init.d/mount-ro и поместите:

telinit u

после следующей строки:

# Flush all pending disk writes now
sync; sync

Не найден /etc/sysctl.conf

По умолчанию, sysctl --system вызывается для загрузки настройки sysctl. [4] Он содержит файл /etc/sysctl.conf, который удалён в Arch. [5]

Чтобы предотвратить ошибку "файл не найден", создайте файл:

# touch /etc/sysctl.conf

opentmpfiles-setup не удалось запустить

При загрузке openrc вы можете увидеть такие строки, как :

* Setting up tmpfiles.d entries ...
chattr: Operation not supported while setting flags on /var/log/journal
chattr: No such file or directory while trying to stat /var/log/journal/%m
chattr: Operation not supported while setting flags on /var/log/journal/remote
[ !! ]
ERROR: opentmpfiles-setup failed to start

Это вызвано тем, что /usr/lib/tmpfiles.d/journal-nocow.conf использует опции, которые действительны только если журнал находится на файловой системе btrfs.

Подробности см. на https://github.com/OpenRC/opentmpfiles/issues/2.

Обходным решением является создание пустого /etc/tmpfiles.d/journal-nocow.conf для переопределения настроек.

Использование OpenRC с окружением рабочего стола (DE)

Если используется OpenRC с окружением рабочего стола, может помочь ConsoleKit. Установите сервис в /etc/openrc/init.d, и включите его:

# rc-update add consolekit default

Для большей информации смотрите ConsoleKit.

Возвращение к systemd

В большинстве случаев возврат к systemd не вызывает затруднений. По сути, это обратная процедура перехода на OpenRC, при этом следует обратить внимание на следующее:

  • Удаление или иное редактирование параметра init= в командной строке ядра.
  • Замена любых пакетов с поддержкой OpenRC или без нее на их эквиваленты (например, замена dbus-nosystemdAUR[ссылка недействительна: package not found] на dbus)

Смотрите также