Is someone here able to start/stop/reload/... a list of units specified with a wildcard or similar method on systemctl?
I try do do somethin like: systemctl restart openstack-nova-*.services
or systemctl restart openstack-nova-?.services
but it's a dead end and I didn't found anything usefull on systemctl's manual.
I could use a for loop but before that I'll have to make a systemctl -t service --failed
and then grep for listed units... a little bit boring isn't ?
So, if someone know if it's possible to do something like that or not, I'll be happy to hear it.
If it's not, I think I'll push the idea on systemctl developers list or maybe do the patch if I have time to ^^
UPDATE Systemd supports wildcards from systemd-209 forward https://serverfault.com/a/797926/291826
Two years later systemctl still doesn't allow wildcards, even though they would be extremely useful.
I did however take your note about
systemctl -t service --failed
and I hacked together this. I decided to post it here because the next person to find this question could be helped by it.systemctl restart $(systemctl -t service --failed | grep openstack-nova-*.service | cut -d ' ' -f 1)
This takes
systemctl -t service --failed
, greps for the services matching "openstack-nova-*.service" and then removes the descriptors of those files by cutting (cut
) on the space (-d ' '
) and taking the first result (-f 1
). Then it restarts the whole bunch because thankfully systemctl command allows for multiple services to be passed to it to stop.Soooo, to be noticed for people looking to manage multiple systemd units at same time. Since 2016 (2017?) Systemd is now accepting wildcard \o/
Exemple:
systemctl restart openstack-nova-*
is now fully workingPS: At least it works on CentOS 7.x release (That's the only one that I tested).