Alternatywą dla powiadomienia jest subskrypcja:
file { "/etc/sshd_config":
source => "....",
}
service { sshd:
ensure => running,
subscribe => File["/etc/sshd_config"],
}
Różnica polega na tym, że związek jest opisany z drugiego końca. Na przykład, możesz zmusić apache do subskrybowania pliku /etc/apache/httpd.conf, ale możesz ustawić plik vhost powiadamiający apache, ponieważ twoja klasa apache nie będzie wiedziała o każdym twoim vhostie.
Podobna sytuacja podwójnego zakończenia ma zastosowanie do wcześniejszych wymagań. To tylko kwestia, która ma większy sens w konkretnej sytuacji.
Jak wspomniał Chad, jeśli marionetka ciągle próbuje uruchomić usługę, musisz dodać parametr wzorca, który jest wyrażeniem regularnym, które można zastosować do listy procesów. Domyślnie marionetka zatrzyma się i zacznie ponownie uruchamiać usługę. Jeśli dodasz „hasrestart => true”, użyje polecenia określonego w parametrze „restart”, aby zrestartować usługę.
(Wiem, że to bardzo stare pytanie, ale pomyślałem, że włożyłem dwa centy w (moim zdaniem) znacznie łatwiejszym sposobem, aby to zrobić)
Możesz również użyć notacji strzałek:
lub
źródło
Działa to w systemie Solaris 10 :)
źródło
Istnieje wiele równoważnych notacji:
Powiadom :
Subskrybuj :
Notacja ze strzałką :
Łańcuchowe deklaracje
Jeśli chcesz uruchomić
reload
zamiastrestart
, dostosuj deklarację usługi:źródło