root権限を必要とするRubyで書かれた特定のスクリプトがあります。他のほとんどのプロセスはそれを必要としないので、Monitで簡単にセットアップできました。これじゃない。
サーバーは386でリッスンする必要があり、このポートはルートでのみ使用できます。理由の詳細については説明しません。1)私は低レベルの人ではないため、2)sudoを使用した場合はこれまで問題なく機能していました。
monit構成ファイルは単純で、次のようになります。
set logfile syslog facility LOG_daemon # Default facility is LOG_USER
set mailserver smtp.sendgrid.net
username "blah", password "blah"
with timeout 20 seconds
set alert blah@bleh.com
set logfile /home/deploy/monit.log
check process ldapserver
with pidfile /var/pids/ldap_server.pid
start program = "/usr/local/bin/ruby /var/lib/ldap_server.rb"
stop program = "/bin/sh"
注:このプロセスには停止プログラムがないため、停止プログラムに/ bin/shを入れました。
私がこのように置くならば:
start program = "/usr/local/bin/ruby /var/lib/ldap_server.rb"
起動に失敗します。ヒントはありません。
start program = "/usr/bin/sudo -u deploy /usr/local/bin/ruby /var/lib/ldap_server.rb
同様に失敗します。出力なし。
start program = "/bin/su deploy -c '/usr/local/bin/ruby /var/lib/ldap_server.rb'
起動に失敗します。
また、stderrとstdoutをキャプチャするためにを使用して出力をリダイレクトしようとし> ~/out.log 2 > &1
ましたが、機能していないようです。
今、私はデプロイユーザーの下で監視を開始していますが、これは制限されています。したがって、LDAPサーバーをrootとして実行する必要がありますが、実行するのは非常に困難です。
誰かが私を教えてもらえますか?
乾杯、
M>