Dodałem nowy skrypt do /etc/init/
wywołania, minecraft.conf
który zawiera skrypt:
start on startup
stop on shutdown
respawn
respawn limit 20 5
script
export HOME="/root"
exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script
post-start script
echo "minecraft started"
Kiedy próbuję start minecraft
, pojawia się błąd:start: Unknown job: minecraft
Próbowałem uruchomić initctl list
i mojej pracy w Minecraft nie ma na liście. Próbowałem biegać initctl reload-configuration
i nie robi to żadnej różnicy.
Inne zadania wymienione według initctl list
pracy działają poprawnie z uruchomieniem, zatrzymaniem i ponownym uruchomieniem.
Dlaczego nowy użytkownik nie zobaczy mojego nowego skryptu?
/etc/init.d/
?/etc/init
będziesz zadowolony, umieść pliki, a teraz możesz zrestartować się i użyć upstart”.sudo start minecraft
bez problemu. Oto treść pliku dziennika.~$ sudo cat /var/log/upstart/minecraft.log minecraft started /proc/self/fd/9: 3: exec: /root/minecraft/start.sh: not found minecraft started
Czy możesz podać więcej szczegółów na temat używanej wersji Ubuntu i jakieś przydatne informacje z syslog?Odpowiedzi:
Sprawdź dzienniki upstart (jest w
/var/log/syslog
) podczas przeładowywania konfiguracji za pomocąinitctl reload-configuration
. Jeśli wystąpi błąd składniowy, pojawi się tam. Zwykle dlatego nie można użyć nowej konfiguracji upstart.źródło
Prostym sposobem sprawdzenia składni skryptu jest użycie następującego polecenia:
Znalazłem, że nawet przy prawidłowym pliku Upstart, jeśli plik nie istniał podczas ostatniego uruchamiania serwera, muszę ponownie uruchomić serwer, aby Upstart mógł zobaczyć plik.
źródło
Czuję się trochę głupio ... Ale oto:
Brakowało mi zwrotki „end script” od samego końca skryptu upstart ...
powinien był być
Nie jestem pewien, dlaczego zadziałało dla @schkovich bez
end script
...źródło
W moim przypadku było to puste
author
pole, takie jak to:Działało to dopiero po dodaniu czegoś do cytatów.
rzucał także
/etc/init/servicename.conf:2: Expected token
do syslog zamiast stdout . Zbyt zajęty, aby złożyć raport o błędzie dla umierającej paczki.źródło
Być może nie dotyczy to konkretnie, ale warto wspomnieć: Jeśli edytujesz plik konfiguracyjny Upstart dla uruchomionej usługi, uruchomienie
restart
NIE spowoduje ponownego załadowania konfiguracji. Musisz uruchomićstop
istart
wprowadzić nowe zmiany w życie.http://upstart.ubuntu.com/cookbook/#restart
źródło