Pracuję nad scenariuszem Boga, który monitoruje moje jednorożce. Zacząłem od skryptu przykładów GitHub i modyfikowałem go, aby pasował do mojej konfiguracji serwera. Gdy Bóg już działa, polecenia takie jak god stop unicorn
i god restart unicorn
działają dobrze.Używanie Boga do monitorowania jednorożca - Rozpocznij wyjście z niezerowym kodem = 1
Jednak god start unicorn
skutkuje WARN: unicorn start command exited with non-zero code = 1
. Dziwne jest to, że jeśli skopiuję skrypt startowy bezpośrednio z pliku konfiguracyjnego, zaczyna się on jak nowiutki mustang.
To moja komenda start:
/usr/local/bin/unicorn_rails -c /home/my-linux-user/my-rails-app/config/unicorn.rb -E production -D
I zadeklarowały wszystkie ścieżki bezwzględne w pliku konfiguracyjnym. Jakieś pomysły, które mogą uniemożliwić działanie tego skryptu?
Ciekawe ... to była naprawdę dobra sugestia. Użyłem dodania echa, aby odczytać wyjście poleceń start i stop, gdy wykonywane są poza boga. Oboje zakończyli pracę z wartością "0". Jednakże, gdy identyczne polecenia są wykonywane przez boga, kończy się on wartością '1'. Wszystkie procesy mają zacząć się jako root ... zarówno bóg, jak i jednorożce. Zastanawiam się, czy istnieje tutaj ogólny błąd uprawnień. Czy to wydaje się wiarygodną odpowiedzią? – mindtonic
Wygląda na to, że chociaż bóg działa jako root, to może wykonywać polecenie jako inny użytkownik? Wygląda na to, że możesz ustawić boga użytkownika, który uruchamia polecenia przez: God.watch do | w | ... w.uid = 'root' w.gid = 'root' ... koniec – Jeremy