Korzystam z przyjemnej funkcji systemd: Instantived Services.
Czy istnieje prosty sposób na ponowne załadowanie wszystkich połączonych usług za pomocą jednego połączenia?
Przykład: nie chcę działać tak:
systemctl restart autossh@foo
systemctl restart autossh@bar
systemctl restart autossh@blu
Próbowałem tego, ale to nie działa
systemctl restart autossh@*
Powiązane: Uruchom N procesów za pomocą jednego pliku usługi systemowej
Aktualizacja
Najpierw byłem zafascynowany Instantived Services, ale później zdałem sobie sprawę, że uruchomienie narzędzia do zarządzania konfiguracją, takiego jak Ansible, ma większy sens. Nauczyłem się: Uprość narzędzia. Wiele narzędzi zaczyna implementować sprawdzanie warunków (jeśli ... else ...) i pętle. Na przykład konfiguracja serwerów WWW lub mailserver. Należy to jednak rozwiązać na innym (wyższym) poziomie: zarządzanie konfiguracją. Zobacz: https://github.com/guettli/programming-guidelines#dont-use-systemd-instantised-units
systemctl status 'autossh@*'
wyjście:autossh@\x2a.service - ... Active: inactive (dead)
Wersja:systemd 195
systemctl restart autossh@{1..2}
(z dowolnym N zamiast2
), co jest nieco mniej ogólne, ale uruchomi również procesy, jeśli sąinactive (dead)
.Nie fajnie, ale działa to w systemach ze starym systemd:
Oczywiście rozwiązanie z powyższej odpowiedzi (
systemctl restart 'autossh@*'
) jest lepsze.źródło
cut
może przeanalizować niepoprawne pole w przypadku awarii usług w danych wyjściowych jednostek list.@weirdan Odpowiedź jest poprawna, ale brakuje jej w niektórych dystrybucjach.
W przypadku Centos 7 i podobnych możesz:
ALE, (start) będzie działać TYLKO, jeśli podasz flagę „--all”:
W przeciwnym razie nie znajdzie usług, ponieważ one nie istnieją. Jest to zamierzona funkcja systemowa.
W systemach opartych na Ubuntu działa prawie w ten sam sposób, ale różnica polega na tym, że dla wszystkich argumentów systemctl należy podać flagę „--all”, w przeciwnym razie nic nie zrobi.
źródło
Nie wiem, czy istnieje opcja dla symbolu wieloznacznego na terminalu dla systemd. Możesz dodać jeden do skryptów systemowych.
Myślę, że% I zrobiłby lewę, ale jest związany ze sposobem, w jaki skrypt utworzyłeś instancję usług.
Możesz znaleźć wyjaśnienie tutaj określane jako specyfikatory
co pokazuje, że:
Nie odpowiadam bezpośrednio na twoje pytanie, ale dla tego, co myślę, że próbujesz osiągnąć. Jeśli uważasz, że Twoje rozwiązanie może zostać znalezione zgodnie z tym pomysłem, prosimy o udostępnienie skryptu systemowego, abyśmy mogli w końcu zilustrować przykładami, a może nawet dostarczyć ostateczny skrypt.
Jeśli masz pewność edycji własnego skryptu w celu znalezienia rozwiązania w ten sposób, oto przykład (nie będę go cytował, ponieważ nie wiem, czy jest on odpowiedni dla rozwiązania i jest zbyt specyficzny dla tego, co ja ”. m proponuję)
źródło