Как сократить время запуска системы OpenRC?

Как сократить время запуска системы OpenRC?

МойГентусистема сИнициализация OpenRCтребуется много времени для запуска, около 24 секунд (измерено отGRUBкГДМ). Мне было интересно, есть ли какие-нибудь рекомендуемые способы улучшить это время. Но в интернете не так много информации по этой теме, насколько я могу судить.

У меня Intel Core i5-6400 и Samsung SSD 970 EVO Plus 500 ГБ.

решение1

Все любят быстрый запуск системы, особенно на ежедневно используемом настольном компьютере. 24 секунды — это довольно долгое время запуска, и мне удалось сократить его до9 секунд.

Я покажу вам несколько советов, без необходимости трогать ваше ядро.

/etc/rc.conf

Начнем с файла конфигурации OpenRC. Есть опция, которая называется rc_parallel. По умолчанию службы запускаются по одной, и когда какая-то служба занимает больше времени, она задерживает другие. Настройка rc_parallel="YES"позволяет системе RC пытаться запускать службы параллельно для небольшого улучшения скорости. В моем случае это было -5 секунд.

A также пришлось установить rc_send_sighup="YES", rc_timeout_stopsec="10", rc_send_sigkill="YES", потому что xdm сервисне хотел останавливатьсяпри выключении системы.

rc-сервис, rc-обновление

Еще одна важная вещь — знать, какие службы на самом деле запускаются. Это вывод, который вы видите во время запуска. Если вы хотитезарегистрируйте этот вывод, установлено rc_logger="YES"в /etc/rc.confфайле. Здесь вы можете найти точное время, предупреждающие сообщения или ошибки.

Услуги делятся на так называемыеуровни запуска, что означает период, когда эти службы запускаются. В запуске системы задействованы два уровня запуска. bootи default.

Вы можете вывести список всех служб и их уровней запуска с помощью команды: rc-update show.
Или вы можете вывести список всех запущенных и остановленных служб с помощью:rc-status --servicelist

В моем случае я нашел несколько ненужных служб, которые я мог безопасно отключить. Например bluetooth, netmountили net.enp0s31f6службу для настройки моего сетевого интерфейса. Она была включена, даже если я использую NetworkManagerслужбу. Мне эти службы не были нужны, и я получил еще 10 секунд, отключив их.

Вы можете отключить службу на определенном уровне выполнения с помощью команды: rc-update del <service> <runlevel>.

Всегдапроверьте, что делает конкретная услуга, прежде чем отключить его. Вы можете получить сломанную систему.


Надеюсь, это поможет кому-то и сэкономит мне немного времени.

решение2

Попробуйте установить app-shells/dashпакет, а затем сделать так, чтобы /bin/shсимволическая ссылка указывала на dash. Последнее можно сделать вручную или с помощью eselect shподкоманды.

Первым дистрибутивом, который сделал это по умолчанию, был Ubuntu более 10 лет назад (IIRC), и это имело большее значение, чем попытка запустить initscript параллельно, как рекомендуется в другом ответе.

Связанный контент