Я использую замечательную функцию systemd: Instantiated Services.
Есть ли простой способ перезагрузить все созданные службы одним вызовом?
Пример: я не хочу запускать все так:
systemctl restart autossh@foo
systemctl restart autossh@bar
systemctl restart autossh@blu
Я пробовал это, но это не работает
systemctl restart autossh@*
Связанный: запуск N процессов с одним файлом службы systemd
Обновить
Сначала я был очарован Instantiated Services, но позже я понял, что использование такого инструмента управления конфигурацией, как Ansible, имеет больше смысла. Я узнал: держите инструменты простыми. Многие инструменты начинают реализовывать проверку условий (если .. еще ...) и циклы. Например, настройка веб-серверов или почтовых серверов. Но это должно быть решено на другом (верхнем) уровне: управление конфигурацией. См: https://github.com/guettli/programming-guidelines#dont-use-systemd-instantiated-units
systemctl status 'autossh@*'
output:autossh@\x2a.service - ... Active: inactive (dead)
Version:systemd 195
systemctl restart autossh@{1..2}
(с любым N вместо2
), который немного менее общий, но он также запустит процессы, если они естьinactive (dead)
.Не хорошо, но это работает для систем со старым systemd:
Конечно, решение сверху ответ (
systemctl restart 'autossh@*'
) лучше.источник
cut
может разобрать неправильное поле в случае, если в выводе списка блоков есть сбойные службы.@weirdan Ответ правильный, но в некоторых дистрибутивах чего-то не хватает.
Для Centos 7 и аналогичных вы можете сделать:
НО, (запуск) будет работать ТОЛЬКО, если вы укажете флаг «--all»:
В противном случае он не найдет сервисы, так как они не существуют. Это системная функция.
Для систем на основе Ubuntu это работает примерно так же, но разница в том, что флаг «--all» должен быть указан для всех аргументов systemctl, иначе он ничего не будет делать.
источник
Я не знаю, есть ли опция для подстановочного знака на терминале для systemd. То, что вы можете сделать, это добавить один из ваших сценариев systemd.
Думаю,% я бы сделал, но связан с тем, как вы создавали сценарии для экземпляров сервисов.
Вы можете найти объяснение здесь, упоминаемое как спецификаторы
что показывает, что:
Я не отвечаю прямо на ваш вопрос, но я думаю, что вы пытаетесь достичь. Если вы думаете, что ваше решение может быть найдено в соответствии с этой идеей, пожалуйста, поделитесь сценарием systemd, чтобы мы могли в конечном итоге проиллюстрировать его примерами и, возможно, даже предоставить вам окончательный сценарий.
Если вы уверены в редактировании свой собственный сценарий , чтобы достичь решения, кстати, здесь у вас есть пример (я не буду цитировать его , как я не знаю , если это имеет значение для решения, и слишком специфична , что я» я предлагаю)
источник