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

Нет, systemdне предлагает функцию управления несколькими перезагрузками и последующей остановки перезагрузки.

Рассмотрим случай, когда ваше приложение дважды дает сбой и запускает две перезагрузки через StartActionLimitи остается стабильной в течение двух недель, а затем запускает третью перезагрузку таким же образом гораздо позже. Можно ли ожидать, что теоретическое StartLimitReboot=3сработает в этом случае?

Если нет, должно быть некоторое значение тайм-аута для истечения «счетчика перезагрузки». Это отличается от таймера скорости перезагрузки службы, потому что таймер перезагрузки должен учитывать, сколько времени требуется машине для загрузки, прежде чем она даже попытается снова запустить службу.

Кроме того, если система застряла в цикле загрузки -из-за сбоя критической службы, имеет ли вообще смысл оставлять машину включенной , если критическая служба не работает,или после этого он должен просто сдаться и отключиться?

Хотя я вижу интерес к systemdпомощи здесь, я не ожидаю, что эта функция появится в ближайшее время.

2
09.04.2020, 20:29
2 ответа

Всем нравится быстрый запуск системы, особенно на ежедневно используемом настольном компьютере. 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>.

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


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

3
28.04.2021, 23:18

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

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

2
28.04.2021, 23:18

Теги

Похожие вопросы