5
  • CentOS リリース 5.4 (最終版)
  • puppet-server-2.7.19-1.el5puppetlabs リポジトリからインストールされます。

puppetmasterは正常に開始されますが、pid ファイルは作成されません。[ FAILED ]停止時のメッセージの理由は次のとおりです。

/etc/init.d/puppetmaster stop
Stopping puppetmaster:                                     [FAILED]

初期化スクリプト: http://fpaste.org/nsfI/

/etc/rc.d/init.d/functionsライブラリ: http://fpaste.org/ox5Q/

そして、これはデバッグモードで実行したときに得られるものです: http://fpaste.org/DkoS/

起動後に手動でファイルに pid する方法は知っていますが、関数echoが機能しないのはなぜですか?daemon--pidfile

daemon $PUPPETMASTER $PUPPETMASTER_OPTS --masterport=${PUPPETMASTER_PORTS[$i]} --pidfile=/var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid

確かに、Puppet マスターはpuppetユーザーとして実行されています。

ps -ef | grep [p]uppet
puppet   23418     1  0 18:13 ?        00:00:00 /usr/bin/ruby /usr/sbin/puppetmasterd

/var/run/puppet/フォルダの所有者は次のpuppetとおりです。

# ls -ld /var/run/puppet/
drwxr-xr-x 2 puppet puppet 4096 Sep 17 18:46 /var/run/puppet/
4

2 に答える 2

2

pidfile を作成するのは、関数ではなく、制御対象のプログラム (この場合はpuppetmasterd)です。これに依存します。daemon()daemon()

puppetmasterdが pidfile を作成する/var/run/puppet.pid場所を確認/var/lib/puppet/run/master.pidますpuppetmasterd( .puppetmasterdstrace -f puppetmasterd 2>&1 | grep '\.pid'

それに応じて の値を変更pidfileします/etc/init.d/puppetmaster

于 2012-11-23T18:04:51.670 に答える
0

したがって、ここにはいくつかの可能性があるように思えます。

  1. デーモン コマンドの --pidfile オプションを使用しようとしている場合は、構文に問題があると思います。

    • Red Hat のデーモン コマンドには、次の (役に立たない) 署名があります: Usage: daemon [+/-nicelevel] {program}. 完全に明確ではないのは、プログラムの場所の後に含めるものはすべて、デーモン関数呼び出しではなく、プログラムに渡されるオプションとして扱われるということです。
    • したがって、あなたの場合、--pidfile引数をではなく$PUPPETMASTERそれ自体に渡していますdaemon()。以下を使用してこれを修正できます。daemon --pidfile=/var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid $PUPPETMASTER $PUPPETMASTER_OPTS --masterport=${PUPPETMASTER_PORTS[$i]}
  2. ここでの 2 番目のオプションは、$PUPPETMASTER(またはその背後にあるプログラム) が自分自身をデーモン化する可能性があり、そうである場合は、独自の .pid ファイルを作成する責任を負う可能性があるというものです。プロセス管理ツールCircusはこのように機能します。おそらく、構成ファイルのオプションか、 で表されるプログラムのオプションです$PUPPETMASTER

    • 私は Puppet ユーザーではないので、ここで詳細を説明することはできません。しかし、このオプションの詳細については、 Puppet ラボのドキュメントを参照してください。
    • $PUPPETMASTER がそれ自体をデーモン化している場合、--pidfile渡された引数daemon()は効果がないことに注意することが重要です。

良い狩り!

于 2014-01-08T01:30:04.310 に答える