Назад | Перейти на главную страницу

перезапуск всех конкретных модулей на systemctl без цикла?

Может ли кто-нибудь здесь запустить / остановить / перезагрузить / ... список единиц, указанных с помощью подстановочного знака или аналогичного метода в systemctl?

Я пытаюсь сделать что-нибудь вроде: systemctl restart openstack-nova-*.services или systemctl restart openstack-nova-?.services

но это тупик, и я не нашел ничего полезного в руководстве по systemctl.

Я мог бы использовать цикл for, но перед этим мне нужно сделать systemctl -t service --failed а затем grep для перечисленных единиц ... немного скучно, не так ли?

Так что, если кто-то знает, можно ли сделать что-то подобное или нет, я буду рад это услышать.

Если это не так, я думаю, что перенесу эту идею в список разработчиков systemctl или, возможно, внесу патч, если у меня будет время ^^

ОБНОВИТЬ Systemd поддерживает подстановочные знаки от systemd-209 и далее https://serverfault.com/a/797926/291826


Два года спустя systemctl по-прежнему не поддерживает подстановочные знаки, хотя они были бы чрезвычайно полезны.

Однако я принял к сведению вашу заметку о systemctl -t service --failed и я вместе это взломал. Я решил разместить его здесь, потому что это может помочь следующему человеку, который найдет этот вопрос.

systemctl restart $(systemctl -t service --failed | grep openstack-nova-*.service | cut -d ' ' -f 1)

Это требует systemctl -t service --failed, greps для служб, соответствующих "openstack-nova - *. service", а затем удаляет дескрипторы этих файлов, вырезая (cut) на пространстве (-d ' ') и взяв первый результат (-f 1). Затем он перезапускает всю группу, потому что, к счастью, команда systemctl позволяет передать ей несколько служб для остановки.

Таааак, на заметку для людей, которые хотят одновременно управлять несколькими модулями systemd. С 2016 (2017?) Systemd теперь принимает подстановочные знаки \ o /

Пример:

systemctl restart openstack-nova-* теперь полностью работает

PS: По крайней мере, он работает на выпуске CentOS 7.x (это единственный, который я тестировал).