2016-03-03 52 views
0

我已經設置了監視器來監視我的sunspot_solr進程,它似乎首先起作用。如果我重新啓動monit的服務與sudo service monit restart我黑子過程開始:Monit&Rails sunspot_solr

ps aux | grep sunspot 

root  4086 0.0 0.0 9940 1820 ?  Ss 12:41 0:00 bash ./solr start -f -s /ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr/solr 
 
root  4137 45.1 4.8 1480560 185632 ?  Sl 12:41 0:09 java -server -Xss256k -Xms512m -Xmx512m -XX:NewRatio=3 -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ConcGCThreads=4 -XX:ParallelGCThreads=4 -XX:+CMSScavengeBeforeRemark -XX:PretenureSizeThreshold=64m -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=50 -XX:CMSMaxAbortablePrecleanTime=6000 -XX:+CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:CMSFullGCsBeforeCompaction=1 -XX:CMSTriggerPermRatio=80 -verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr/server/logs/solr_gc.log -Djetty.port=8983 -DSTOP.PORT=7983 -DSTOP.KEY=solrrocks -Duser.timezone=UTC -Djetty.home=/ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr/server -Dsolr.solr.home=/ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr/solr -Dsolr.install.dir=/ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr -jar start.jar --module=http 
 
ubuntu 4192 0.0 0.0 10460 936 pts/3 S+ 12:41 0:00 grep --color=auto sunspot

不過,我也跑tail -f /var/logs/monit.log,看到這個在同一時間:

[CST Mar 3 12:42:54] error : 'sunspot_solr' process is not running 
 
[CST Mar 3 12:42:54] info  : 'sunspot_solr' trying to restart 
 
[CST Mar 3 12:42:54] info  : 'sunspot_solr' start: /usr/bin/sudo 
 
[CST Mar 3 12:43:25] error : 'sunspot_solr' failed to start

此外,以確保monit的實際上可以重啓sunspot_solr過程中,我跑sudo kill -9 <the pid>和monit的無法重新啓動sunspot_solr:

[CST Mar 3 12:44:25] error : 'sunspot_solr' process is not running 
 
[CST Mar 3 12:44:25] info  : 'sunspot_solr' trying to restart 
 
[CST Mar 3 12:44:25] info  : 'sunspot_solr' start: /usr/bin/sudo 
 
[CST Mar 3 12:44:55] error : 'sunspot_solr' failed to start

顯然,什麼是錯的我monit-solr_sunspot.conf文件,但現在擺弄幾個小時後,我很難過:

check process sunspot_solr with pidfile /ebs/staging/shared/pids/sunspot-solr.pid 
 
    start program = "/usr/bin/sudo -H -u root /bin/bash -l -c 'cd /ebs/staging/releases/20160226191542; bundle exec sunspot-solr start -- -p 8983 -d /ebs/staging/shared/solr/data --pid-dir=/ebs/staging/shared/pids'" 
 
    stop program = "/usr/bin/sudo -H -u root /bin/bash -l -c 'cd /ebs/staging/releases/20160226191542; bundle exec sunspot-solr stop -- -p 8983 -d /ebs/staging/shared/solr/data --pid-dir=/ebs/staging/shared/pids'"

我已經調整了這個monit腳本以適應我的需要:Sample sunspot-solr.monit但我仍然沒有運氣!

UPDATE 我已經得到MONIT成功重啓sunspot_solr如果我殺了它,但它仍然產生它未能在monit.log文件重新啓動的錯誤。

回答

0

我認爲monit以root身份運行。您可能不想使用sudo,因爲它會提示輸入密碼,並且因爲monit不需要它。