Нет никакой "одной кнопки способа" выполнения этого. Экспериментальный с lib или можно использовать DKIMproxy, который работает с DKIM и DomainKeys для подписания исходящей почты.
Я бы не стал использовать / etc / issue, так как этот файл иногда изменяется или может даже не упоминать версию.
вместо этого, по моему мнению, вам следует искать файл, специфичный для дистрибутива.
Со своей стороны:
Debian: /etc/debian_version
Ubuntu: /etc/lsb-release
Arch: /etc/arch-release
лично я бы проверил наличие файла и "рассмотрит" его на основе этого файла
см. Здесь некоторые другие файлы распространения
И Ubuntu, и debian имеют служебную утилиту. Используйте имя сервиса start|stop
для всего, кроме arch.
Я бы сказал не смотреть на текущий дистрибутив , чтобы определить, какую систему инициализации использовать для управлять демонами:
Хотя это не является надежным (система может выбрать установку нескольких систем инициализации рядом друг с другом), я бы сделал это так, чтобы искать присутствие самих инструментов :
if command -v systemctl >/dev/null; then
# assume systemd
systemctl $command $servicename
elif command -v initctl >/dev/null; then
# assume upstart
initctl $command $servicename
elif command -v service >/dev/null; then
# assume old Debian `service` utility
service $servicename $command
# ... elif cases for any other utils you'd want to check for ...
else
# assume bare init.d scripts
/etc/init.d/$servicename $command
fi
Этот ответ на аналогичный вопрос описывает некоторые дополнительные эвристические методы, которые вы можете использовать для определения используемой в настоящее время системы инициализации, в случаях, когда она недостаточно точна.
В конечном итоге, однако, нет единого способа по-настоящему определить, какая именно система инициализации установлена "использует" - можно создать настройку, которая переключается между системами инициализации при каждой загрузке.