Mam program golang, który chcę zrestartować po zakończeniu działania w oknie Debian Squeeze. Chodzi o to, aby obsługiwać HTTP za konfiguracją mod_proxy Apache 2. Nie spodziewam się, że proces się nie powiedzie, ale chciałbym mieć jakieś ubezpieczenie.
Na Ubuntu użyłbym upstart, aby utrzymać proces przy życiu. Debian nie lubi Upstartu z tego, co rozumiem, ponieważ jest to zamiana init.
Czy istnieje alternatywa, która ponownie uruchamia jeden lub więcej procesów po ich zakończeniu, która działa na Squeeze i dobrze gra z init?
debian
init.d
debian-squeeze
Usunięte
źródło
źródło
Odpowiedzi:
Najlepszym sposobem na to są
daemontools
. Pozwalają monitorować i odradzać procesy.Zobacz dokumentację na ich stronie internetowej: http://cr.yp.to/daemontools.html
źródło
superwizja to lekka, wydajna alternatywa. W Debianie jest pakowany w Daemontools . Możesz również przeczytać to pokrewne pytanie , w którym wymieniono niektóre krytyki nadzorowane, a wzmianki wznowiono jako kolejną możliwość.
Wreszcie, jeśli chcesz czegoś niezwykle łatwego w konfiguracji, odniosłem wielki sukces dzięki monitorowi . Jest także zapakowany w Debianie .
źródło
nadzór lub monitorowanie są dobre do utrzymania jednego procesu przy życiu. Ponieważ prosisz o utrzymanie jednego lub więcej procesów przy życiu, chciałbym podłączyć nadzór . Jest to z pewnością przesada w zarządzaniu jednym procesem, ale jeśli musisz śledzić wiele procesów, może to być Twoja sprawa.
źródło
Jedną z opcji jest użycie
/etc/inittab
zamiast wstawiania skryptu/etc/init.d/
.Po prostu dodajesz wpis w następującym formacie:
<jobname>:<runlevels>:respawn:<command>
Niestety oznacza to, że nie możesz używać normalnych poleceń start / stop / restart init, ale powinno to zapewnić ciągłe działanie skryptu.
źródło
Cross-dystrybucja sposobu ponownego uruchamiania procesu odbywa się za pomocą crona i prostego skryptu. Tutaj możesz zobaczyć opis Jak utrzymać pracę w systemie Linux
Skrypt wygląda mniej więcej tak
źródło