reiniciando todas as unidades específicas no systemctl sem loop?

6

Alguém aqui pode iniciar / parar / recarregar / ... uma lista de unidades especificadas com um curinga ou método similar no systemctl?

Eu tento fazer algo como: systemctl restart openstack-nova-*.services ou systemctl restart openstack-nova-?.services

mas é um beco sem saída e não encontrei nada de útil no manual do systemctl.

Eu poderia usar um loop for, mas antes disso eu terei que fazer um systemctl -t service --failed e então grep para as unidades listadas ... um pouco chato não é?

Então, se alguém souber se é possível fazer algo assim ou não, ficarei feliz em ouvir.

Se não for, acho que vou empurrar a ideia na lista de desenvolvedores do systemctl ou talvez fazer o patch se tiver tempo para ^^

    
por Dr I 23.09.2013 / 10:09

2 respostas

0

Muuuito, para ser notado por pessoas que desejam gerenciar várias unidades systemd ao mesmo tempo. Desde 2016 (2017?), O Systemd agora aceita o caractere curinga \ o /

Exemplo:

systemctl restart openstack-nova-* está agora totalmente em funcionamento

PS: Pelo menos funciona no lançamento do CentOS 7.x (é o único que testei).

    
por 09.10.2018 / 11:21
2

Dois anos depois, o systemctl ainda não permite curingas, embora sejam extremamente úteis.

No entanto, tomei sua nota sobre systemctl -t service --failed e eu juntei isso. Decidi postar aqui porque a próxima pessoa a encontrar essa pergunta poderia ser ajudada por ela.

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

Isso leva systemctl -t service --failed , greps para os serviços correspondentes a "openstack-nova - *. service" e remove os descritores desses arquivos cortando ( cut ) no espaço ( -d ' ' ) e obtendo o primeiro resultado ( -f 1 ). Em seguida, ele reinicia o grupo inteiro, porque felizmente o comando systemctl permite que vários serviços sejam passados para ele parar.

    
por 01.08.2015 / 00:09