Выпуск системы инициализации sysvinit 2.95
Состоялся релиз классической системы инициализации sysvinit 2.95, которая широко применялась в дистрибутивах Linux во времена до systemd и upstart, а теперь продолжает использоваться в дистрибутиве Devuan. Одновременно сформированы выпуски применяемых в связке с sysvinit утилит insserv 1.20.0 и startpar 0.63. Утилита insserv предназначена для организации процесса загрузки с учётом зависимостей между init-скриптами, а startpar применяется для обеспечения параллельного запуска нескольких скриптов в процессе загрузки системы.
В новом выпуске:
- В утилите «pidof» прекращена поддержка настройки форматирования вывода и удалён флаг »-f», так как связанный с форматированием код вызывал проблемы с безопасностью и потенциальные ошибки при работе с памятью. При необходимости изменения формата вывода теперь предлагается использовать опцию »-d» для определения разделителя и преобразование утилитами, подобными «tr»;
- На стадии завершении работы теперь применяются миллисекундные задержки вместо приостановок на целую секунду (вместо do_sleep () вызывается do_msleep ()). Изменение позволило в среднем на полсекунды сократить время завершения работы и перезапуска;
- В документации более детально описано поведение утилиты halt и связанных с ней опций (-h, -H и -P);
- Прекращено связывание с библиотекой sepol, которая больше не используется;
- В insserv внесены изменения в сборочные файлы (Makefile). При установке insserv больше не перезаписывает файл с настройками insserv.conf, если он уже существует, а сохраняет рядом новый файл insserv.conf.sample.
- Добавлена обработка файла /etc/insserv/file-filters, в котором можно указать список расширений (например, .git и .puppet)), которые будут игнорированы при обработке скриптов в /etc/init.d.
- В insserv добавлена опция »-i» для указания альтернативного каталога с файлами определения зависимостей.
- В insserv в проведена чистка тестового набора, перенесённого из Debian, и обеспечен его запуск при помощи команды «make check». Сбой при выполнении тестов теперь останавливает дальнейшую проверку и сохраняет статистику на диске для анализа проблемы. В ходе работы над тестовым набором выявлены различные проблемные ситуации, которые insserv может корректно обработать или обойтись выводом предупреждения. Например, insserv теперь ограничивается предупреждением, при наличии неопределяемой зависимости »$service» или при указании одного и того же runlevel в полях Default-Start и Default-Stop.
- Команда startpar теперь устанавливается в каталог /bin, а не в /sbin, так как она может использоваться не только администратором, но и обычными пользователями. Отменён план переноса файлов учёта зависимостей из /etc в /var или /lib, так как могли возникнуть потенциальные проблемы при использовании сетевых ФС и нарушалась совместимость с некоторыми утилитами. В коде некоторые строки, проверяемые через sizeof (), заменены на константы.
© OpenNet