PostgreSQL を daemontools サービスとして実行するにはどうすればよいですか?

PostgreSQL を daemontools サービスとして実行するにはどうすればよいですか?
  1. svscanbootが実行され、自動起動に追加されました
  2. 記事からスクリプトを追加http://thedjbway.b0llix.net/services/postgresql.html/service/postgres/run に移動し、モードを a+x、root 所有者に変更します。
  3. サービスを追加: svc -u /service/postgres
  4. svstat /service/postgres を確認してください。スクリプトは実行されていません。

答え1

チュートリアルを最後まで実行すると、ログサービスも作成されます。ログサービスには、ログファイル内メイン サービスが失敗した理由について。ログ ファイルはtail、、、を使用して読み取ることができますgrepless

バニラのdaemontoolsは、svstatサービスが現在稼働しているか停止しているかのみを示します。スクリプトが実行されなかったと主張する根拠はありません。実際、した実行すると、ログ サービスのログ ファイル内のエラー メッセージに、実行時に出力されたエラー メッセージが示されます。

もちろん、スクリプトに、その操作の多くをまったく普通の方法で説明させることもできます。結局のところ、これは#!/bin/sh解釈されるスクリプトなので、シェルの-vおよび-xオプションは、他のシェル スクリプトと同じように使用できます。

ログに見つかる可能性が最も高いのは、postmasterが に存在せず、や のPATHような場所のサブディレクトリにあるというものです。この場合、 として呼び出すか、または、単純な として呼び出されたときにプログラムが見つかるように、スクリプト内でパスの先頭に を追加する必要があります。後者については、PostgreSQL のドキュメントで説明されています (qv)。/usr/lib/postgresql//usr/local/pgsql/usr/lib/postgresql/bin/postmaster/usr/lib/postgresql/bin/postmaster

参考文献

  • 環境変数「」。 PostgreSQL の最新ドキュメント. 2016. PostgreSQL グローバル開発グループ。
  • サーバーの起動失敗「」。 PostgreSQL の最新ドキュメント. 2016. PostgreSQL グローバル開発グループ。

関連情報