OpenRC (Русский)
OpenRC - менеджер служб, поддерживаемый разработчиками Gentoo. Это система инициализации на основе зависимостей, которая работает вместе с программой инициализации SysVinit.
Установка
OpenRC и сопутствующие пакеты доступны в AUR. Для получения подробной информации о компонентах инициализации смотрите Init.
Установите пакет openrcAUR или openrc-gitAUR. С версии 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
используются для настройки.
Настройка
Для получения общей информации о настройке 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"
Сетевой сервис добавляется в загрузочный уровень по умолчанию, так что дальнейшие действия не требуются.
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 для подробностей.
Решение проблем
Ошибка при размонтировании /tmp
При выключении системы, вы можете получить сообщение об ошибке, например:
* Unmounting /tmp ... * in use but fuser finds nothing [ !! ]
Это можно исправить путем добавления
no_umounts="/tmp"
в /etc/openrc/conf.d/localmount
Не работает отключение 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][устаревшая ссылка 2020-08-04] Он содержит файл /etc/sysctl.conf
, который удалён в Arch. [5]
Чтобы предотвратить ошибку "файл не найден", создайте файл:
# touch /etc/sysctl.conf
Использование OpenRC с окружением рабочего стола (DE)
Если используется OpenRC с окружением рабочего стола, может помочь ConsoleKit. Установите сервис в /etc/openrc/init.d
, и включите его:
# rc-update add consolekit default
Для большей информации смотрите ConsoleKit.