追加読書

追加読書

起動時に実行するために runit runer を使用しています。 runitが実行しているプログラムのすべての出力をファイルに記録したいと思います。

私は見たことがないsvlogdしかし、私はそれを実行する方法を知りません。

答え1

私はそれを動作させる方法を知りません。

daemontoolsシリーズの世界では、ログサービスは他のサービスと同じです。したがって、「基本」サービスを実行するプログラムと同様に、プログラムをsvlogd実行します。runrun

「ログ」サービスは、次の点でのみ特別です。

  • 「ログ」サービスディレクトリは、「プライマリ」サービスディレクトリ(または直下のサブディレクトリ)のシンボリックリンクを使用して配置されます。
  • 一部(すべてではありません)daemontoolsツールセットスイートは、「ログ」および「基本」サービスを緊密にバインドし、両方のサービスを単一のユニットとして機能します。ある程度は runit の場合です。

それ以外の場合は、他のすべてと同じです。

svlogdしたがって、他のサービスを作成するのと同じように、実行する「ログ」サービスを作成し、「デフォルト」サービスに基づいて正しい場所に配置してから開始します。

追加読書

答え2

最初にすべきことは、システム上の runit ファイルがどこにあるかを調べることです。通常、各サービスに対して1つの/etc/runit/ディレクトリが作成されたディレクトリを見つけることができます。sv

という新しいサービスを作成するとしますfoodfoodという名前のディレクトリを作成します/etc/runit/sv/

# mkdir /etc/runit/sv/food

からrunスクリプトを作成します/etc/runit/sv/food。サービスプログラムがにある実行可能ファイルであるとします/opt/bin/foo。この場合、runスクリプトは次のようになります。

#!/bin/sh
exec /opt/bin/foo 2>&1

ログを記録するには、名前/etc/runit/sv/food付きディレクトリ内に別のディレクトリを作成する必要がありますlogrunその中に別のスクリプトがあります。

#!/bin/sh
exec svlogd -tt <logs-directory>

輸出を保証します<logs-directory>。そして両方のスクリプトを実行可能にすることを忘れないでくださいrun

# chmod +x /etc/runit/sv/food/run
# chmod +x /etc/runit/sv/food/log/run

food内部ディレクトリへのシンボリックリンクを作成します。/etc/runit/runsvdir/default

# ln -s /etc/runit/sv/food /etc/runit/runsvdir/default/

サービスを手動で開始/停止するには、次の手順を実行します。

# sv start food
# sv stop food

これをつかむクイックスタートガイド詳細については。

ガイドとは異なりchpst。この場合、foodサービスはrootchpst特定のユーザーでサービスを実行するには、ガイドの推奨事項に従ってください。

関連情報