Okresowo aktualizuję pliki konfiguracyjne nginx iz powodu problemów technicznych czasami może się zdarzyć, że nginx nie działa.
W tym przypadku, jeśli biegnę nginx -s reload
Widzę ten błąd:
nginx: [error] open () „/run/nginx.pid” nie powiodło się (2: brak takiego pliku lub katalogu)
Jak mogę ponownie załadować konfigurację nginx poleceniem z góry, jeśli jest uruchomiona lub uruchomiona, jeśli nie działa bez zobaczenia tego błędu?
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli nie możesz liczyć na to, że nginx jestjuż uruchomiony, należy go ponownie uruchomić. Ale jeśli naprawdę chcesz powyżej, zakładając, że używasz linux / unix i wygląda na to, że możesz stworzyć mały skrypt powłoki. Ponownie, zakładając, że twoja domyślna powłoka jest zgodna z bash lub bash (inne powłoki musiałyby być przeniesionym) możesz zrobić coś takiego:
#!/bin/sh
if [ -f /run/nginx.pid ]; then
/path/to/nginx -s reload
else
/path/to/whatever/command/starts/nginx
fi
Możesz przenieść powyższe na zupełnie nowy poziomza pomocą inotify. Ponownie, zakładając, że używasz dystrybucji Linuksa, możesz zainstalować pakiet inotify-tools dystrybucji systemu operacyjnego i zautomatyzować uruchamianie powyższego pliku skryptu za każdym razem, gdy zmieniają się pliki konfiguracyjne. Zobacz to, aby uzyskać więcej informacji na temat korzystania z inotify:
Jak wykonać polecenie po zmianie pliku