递归 – 在没有for循环的情况下重新启动systemctl上的所有特定单元?

有人在这里能够启动/停止/重新加载/ …在systemctl上使用通配符或类似方法指定的单位列表?

我尝试做的事情如下:systemctl restart openstack-nova – * .services或systemctl restart openstack-nova – ?.services

但这是一个死胡同,我没有在systemctl的手册上找到任何有用的东西.

我可以使用for循环但在此之前我将不得不制作一个systemctl -t服务 – 失败然后grep列出的单位…有点无聊不是吗?

所以,如果有人知道是否可以做这样的事情,我会很高兴听到它.

如果不是,我想我会在systemctl开发人员列表上推动这个想法,或者如果我有时间的话可能会做补丁^^

最佳答案
两年后,systemctl仍然不允许使用通配符,即使它们非常有用.

然而,我确实记下了关于systemctl -t服务的说法 – 失败了,我一起攻击了这个.我决定在这里发帖,因为找到这个问题的下一个人可以得到帮助.

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

这需要systemctl -t服务 – 失败,greps用于匹配“openstack-nova – * .service”的服务,然后通过剪切(剪切)空格(-d”)并取第一个来删除这些文件的描述符结果(-f 1).然后它重新启动整个群,因为谢天谢地,systemctl命令允许将多个服务传递给它以停止.

转载注明原文:递归 – 在没有for循环的情况下重新启动systemctl上的所有特定单元? - 代码日志