2016-05-18 9 views
0

Ich frage das, obwohl ich technisch weiß, wie es geht. Ich habe diese Umgebung auf 3 anderen Servern eingerichtet. Allerdings ist es unglaublich, unglaublich stur auf diese brandneue RHEL6-Installation. HierWie kann ich Monit Sidekiq laufen lassen?

ist ein Eintrag aus der Liste meiner /etc/monit.d/sidekiq_uploader.monitrc Datei:

# sidekiq worker 0 
check process sidekiq_uploader_0 
    with pidfile /var/run/sidekiq/uploader/sidekiq_0.pid 
    start program = "/home/deploy/scripts/sidekiq uploader start production 0" with timeout 180 seconds 
    stop program = "/home/deploy/scripts/sidekiq uploader stop production 0" with timeout 180 seconds 
    group uploader_sidekiq 

Ganz einfach, habe ich recht? Funktioniert nicht. Erstellt die PID-Datei, erstellt die Logdatei im Rails-Projekt log Verzeichnis, dann nichts.

Vielleicht die frustrierendste Sache ist, dass ich die Start und Stop-Befehle oben auf der Befehlszeile ausschneiden und einfügen kann, und sie einwandfrei laufen.

In /var/monit/log, immer und immer wieder:

[EDT May 18 12:37:29] info  : Awakened by User defined signal 1 
[EDT May 18 12:37:29] info  : 'sidekiq_uploader_0' start: /home/deploy/scripts/sidekiq 
[EDT May 18 12:37:29] info  : 'sidekiq_uploader_0' start action done 
[EDT May 18 12:37:59] error : 'sidekiq_uploader_0' process is not running 
[EDT May 18 12:37:59] info  : 'sidekiq_uploader_0' trying to restart 

Hier ist der einzige Eintrag in der Rails lügt:

# Logfile created on 2016-05-18 12:37:21 -0400 by logger.rb/47272 

im Geringsten nicht hilfreich. Wenn ich nur den Startbefehl an der Befehlszeile ausfühle:

Das Protokoll wird im Rails/log-Verzeichnis erstellt, und die Rails production.log-Datei wird erstellt. Die sidekiq Protokolldatei enthält dann:

# Logfile created on 2016-05-18 12:37:21 -0400 by logger.rb/47272 
2016-05-18T17:45:13.303Z 24843 TID-oxfx4u7ko INFO: Booting Sidekiq 4.0.2 with redis options {:url=>"redis://redis:6379", :namespace=>"uploader"} 
2016-05-18T17:45:14.061Z 24843 TID-oxfx4u7ko INFO: Running in ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux] 
2016-05-18T17:45:14.061Z 24843 TID-oxfx4u7ko INFO: Sidekiq Pro 3.0.1/Sidekiq Enterprise 1.1.0, commercially licensed. 
2016-05-18T17:45:14.064Z 24843 TID-oxfx4u7ko INFO: Starting processing, hit Ctrl-C to stop 
2016-05-18T17:45:14.126Z 24843 TID-oxfxm4ix8 INFO: Gained leadership of the cluster 
+0

Warum verwenden Sie Monit statt Upstart? –

+0

Nur weil es das ist, was ich weiß und ich in der Vergangenheit damit erfolgreich war. – AKWF

+1

Ich bin kein Fan von Monit persönlich. Sie können die Unterstützung mehrerer Prozesse in Sidekiq Enterprise verwenden, um Speicher zu überwachen und aufgeblähte Kinder neu zu starten: https://github.com/mperham/sidekiq/wiki/Ent-Multi-Process#memory-monitoring Siehe auch mein Inspektor-Projekt. –

Antwort

0

Aus irgendeinem unbekannten Grund ich die Befehle in der Monit Konfigurationsdatei ändern musste:

start program = "/bin/bash -c '/home/deploy/scripts/sidekiq uploader start production 0 &>/home/deploy/sidekiq_0.out'" with timeout 180 seconds 
stop program = "/bin/bash -c '/home/deploy/scripts/sidekiq uploader stop production 0'" with timeout 180 seconds 

Ich habe keine Ahnung, warum, aber es funktioniert jetzt.