追加読書

追加読書

Cloudera CDH5リポジトリからCentOS 7にHueをインストールしました。

起動後に報告されたエラー:

# systemctl status hue
hue.service - SYSV: Hue web server
   Loaded: loaded (/etc/rc.d/init.d/hue)
   Active: failed (Result: resources) since sob 2016-11-26 20:25:31 UTC; 6min ago
  Process: 3448 ExecStart=/etc/rc.d/init.d/hue start (code=exited, status=0/SUCCESS)

lis 26 20:25:20 node0 systemd[1]: Starting SYSV: Hue web server...
lis 26 20:25:20 node0 su[3457]: (to hue) root on none
lis 26 20:25:31 node0 hue[3448]: Starting hue: [  OK  ]
lis 26 20:25:31 node0 systemd[1]: PID file /usr/lib/hue/pids/supervisor.pid not readable (yet?) after start.
lis 26 20:25:31 node0 systemd[1]: Failed to start SYSV: Hue web server.
lis 26 20:25:31 node0 systemd[1]: Unit hue.service entered failed state.

これは無効なエラー、Hueは実際に正しく起動し、/var/run/hue/supervisor.pid別のディレクトリ()にpidファイルを作成しました。

# ps -ef | grep hue
hue       3877     1  0 20:25 ?        00:00:00 python2.7 /usr/lib/hue/build/env/bin/supervisor -p /var/run/hue/supervisor.pid -l /var/log/hue -d
hue       3949  3877  0 20:25 ?        00:00:03 python2.7 /usr/lib/hue/build/env/bin/hue runcherrypyserver

PIDFILE変数はpidディレクトリに正しく設定されています/etc/init.d/hue。 systemctlがコメントとして報告したディレクトリを見つけましたが、

# pidfile: /usr/lib/hue/pids/supervisor.pid
[...]
PIDFILE=/var/run/hue/supervisor.pid

/etc今私はそれらをすべて見てきましたが、/usrsystemd/varに特定のディレクトリでpidfileを見つけるように指示する設定が見つかりませんでした。どのようなヒントがありますか?

ベストアンサー1

[...] systemdに、特定のディレクトリでpidfileを見つけるように指示する設定が見つかりません。

皆さんはできるし、それをすることができます。あなたはあなたの質問にそれを入れました:

systemctlまた、コメントに報告されたディレクトリも確認しました。

# pid ファイル:/usr/lib/hue/pids/supervisor.pid

まさにそこ。設定情報はsystemd-sysv-generatorPIDファイルの場所を示します。

これは、いくつかの主要なrcスクリプト(Mewburn rc、OpenBSD、LFS、Fedora / RHEL / CentOS、SUSE、Debian / Ubuntu、およびOpenRC)rcからsystemdがインポートしようとする2つのスクリプトのうちの1つです。賞品は、説明の前に追加される「SYSV:」です。別のスタイルをインポートするときは、前に「LSB:」を追加します。

PIDFILEpidディレクトリは変数を通して正しく設定されました。

「正しい」というのは誇張された表現です。以前のrcスクリプトは自己矛盾していました。ヘッダーの構成情報は、スクリプトの実際の機能と矛盾します。

一つの方法は矛盾するrcスクリプトを修正することです。より良いアプローチは、サービスユニットを作成することです。無効なrcスクリプトを使用すると、デーモンが2つのネストされたサービスマネージャ(systemdの下のスーパーバイザ)で実行される可能性があります。皮肉なことに、このPIDファイルのジャンクは単に不要です。

それは次のとおりです。

[単位]
説明=Hue Webサーバー
ドキュメント=https://unix.stackexchange.com/a/326354/5132

[提供する]
タイプ=シンプル
ユーザー=色合い
作業ディレクトリ=/usr/lib/hue/
環境=PYTHON_EGG_CACHE=/tmp/.hue-python-eggs
ExecStart=/usr/bin/env ビルド/env/bin/hue runcherrypyserver
syslogidentifier=hue

[インストールする]
WantedBy =マルチユーザー。ターゲット

追加読書

おすすめ記事