2012-02-28 17 views
12

Podczas korzystania z usługi upstart na Ubuntu, w jaki sposób wydać polecenie uruchomienia zadania, jeśli nie jest uruchomiony i ponownie uruchomiony, jeśli jest już uruchomiony. Podczas wdrażania aplikacji do nowego węzła zadanie nie jest zdefiniowane.UpStart initctl start | restart ubuntu

initctl restart JOB complains if not already running 
initctl start JOB complains if already running. 

mogę to zrobić skrypt

initctl start JOB 
initctl restart JOB 

Ale to nie wydaje się być najpiękniejszy rzeczą do zrobienia.

Odpowiedz

10

Byłem wobec tego samego problemu. Krótki z prostego polecenia "lazy-stop-then-start" wbudowanego initctl, musimy napisać skrypt.

Invoke i ponownie uruchomić, jeśli nie:

initctl start JOB || initctl restart JOB 

Ten skrypt nie jest chyba odpowiedź oboje szukaliśmy, ale jest na tyle krótki, aby go wspominać.

Dopóki usługa działa dobrze, to wystarczy.

Gdy usługi się nie powiodą, ten skrypt nie powiedzie się dwa razy; Na przykład, jeśli usługa została zatrzymana i faktycznie się nie uruchamia, nie będzie również mogła zostać uruchomiona ponownie.

Zdecydowanie szukam ulepszenia.

Mam nadzieję, że to pomoże.

+1

Dzięki. Wiem. Dziwne, że initctl go nie obsługuje. Zadanie jest zidentyfikowane. – Niclas

5

Próbowałem także metody "start or restart", którą zasugerował hmalphettes, ale wpadłem w kłopoty. Podczas korzystania z tego podejścia nie zostaną zastosowane aktualizacje skryptu upstart. Zamiast tego używam tego, co działa tak, jak się spodziewam:

sudo stop JOB || true && sudo start JOB 

W skrócie brzmi: "Zatrzymaj pracę, jeśli działa, a następnie ją uruchom".

2
sudo service JOB restart 

Komenda usługa została załatana w Ubuntu, aby to działało tak samo na Upstart jak ma to miejsce w najczęstszych przypadkach na sysvinit.

systemctl restart JOB 

Ma pewne nieoczekiwane skutki, w związku z czym przed rozpoczęciem użytkowania należy je dokładnie sprawdzić. W większości przypadków można go ponownie uruchomić bez ponownego wczytywania definicji zadania, co jest rzadkim przypadkiem.

Powiązane problemy