OpenRC (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
OpenRC
. Дата последней синхронизации: 3 февраля 2016. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
eudev
init
Важно
Arch Linux официально поддерживает только
systemd
. При обращении за поддержкой, пожалуйста, укажите, что пользуетесь OpenRC
OpenRC
- менеджер служб, поддерживаемый разработчиками Gentoo. Это система инициализации на основе зависимостей, которая работает вместе с программой инициализации
SysVinit
.
Установка
OpenRC и сопутствующие пакеты доступны в
AUR
. Для получения подробной информации о компонентах инициализации смотрите
Init
.
Установите пакет
openrc
AUR
или
openrc-git
AUR
[
ссылка недействительна
: package not found]
. С версии 0.25 OpenRC предоставляет собственный init (
/usr/bin/openrc-init
). В качестве альтернативы можно использовать
busybox
. Файлы сервисов содержатся в пакете
openrc-arch-services-git
AUR
.
Для поддержки совместимости с
initscripts-fork
AUR
[
ссылка недействительна
: package not found]
, файлы настроек будут установлены в
/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 смотрите:
руководство OpenRC (Англ.)
миграция на OpenRC (Англ.)
gentoo wiki
.
Подготовка
Смотрите
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
.)
Логи загрузки
Чтобы включить ведение журнала загрузки, раскомментируйте строку
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
.
Смотрите
[2]
и
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.
[3]
Он содержит файл
/etc/sysctl.conf
, который удалён в Arch.
[4]
Чтобы предотвратить ошибку "файл не найден", создайте файл:
# 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-nosystemd
AUR
[
ссылка недействительна
: package not found]
на
dbus
)
Смотрите также
Реально ли установить и пользоваться Arch без systemd?
Wikipedia OpenRC
Gentoo wiki
OpenRC for Arch Linux - sourceforge repository
Forum thread about OpenRC in Arch
Blog: OpenRC on Arch Linux
[
устаревшая ссылка
2024-03-03 ⓘ]
Manjaro wiki