Выпуск системы инициализации 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(), заменены на константы.

Источник: http://www.opennet.ru/opennews/art.shtml?num=50874