GNU/Linux >> Linux の 問題 >  >> Linux

DevuanでのRunitの使用

DevuanおよびさまざまなsystemdフリーのLinuxディストリビューションは、代替のinitシステムを提供します。 runit 最も必要最低限​​で最も軽いものの1つです。コードベースが小さいと、バグやセキュリティの問題の保守と監査が容易になります。 * BSD、MacOSXなどの他のユニスでも実行できます。この記事では、 runitの基本について説明します。 Devuanをベースとしたinitスキーム。ただし、ほとんどの概念とコマンドは、他のディストリビューションでも同じである必要があります。詳細については、最後にある参考資料を参照してください。

動作メカニズム

公式文書によると、 runit サービス監視付きの初期化スキームです。つまり、起動中のサービスの自動開始、およびサービスの監視と再起動を処理します。 UNIX哲学に準拠して、runitはさまざまな小さなツールとバイナリで構成されています(ただし、肥大化するほどではありません * ahem * systemd * ahem * )それと他のデーモンと相互作用するため。
ほとんどのinitシステムと同様に、カーネルは最初のプロセス– /sbin/initをロードします これは、runit-init(8)プログラムによって提供されます。次に、それ自体をrunit(8)に置き換えます。 runitは、システムの起動、実行、およびシャットダウンを実行するものであり、次の3つの段階で実行されます。

  • ステージ1
    システムは、/etc/runit/1を介して1回限りの初期化タスクを実行します 。この段階が失敗すると、緊急シェルを取得します。
  • ステージ2
    runitは/etc/runit/2を開始します これはrunsvdir(8)を介してランレベルを処理します。これは、システムが実行されているときにシステムがとどまる段階です。この段階で、Ctrl + Alt+Deleteの再起動要求を出すこともできます。
  • ステージ3:
    /etc/runit/2の場合 システムの停止中または再起動中に発生するエラーなしで戻り、runitは/etc/runit/3を開始します 。シャットダウンタスクはステージ3で実行されます。

ランレベル

runitの標準インストールには、2つのランレベルがあります 、default およびsingle 。ランレベルディレクトリには、他のサービスディレクトリへのシンボリックリンクが含まれています。ほとんどのタスクが実行され、ほとんどのサービスはdefaultで開始されます ランレベル。ただし、/etc/runit/runsvdir/に新しいフォルダを作成することで、独自のランレベルを作成できます。 必要なサービスをそのランレベルにシンボリックリンクします。私のDevuanインストールには、他に2つのランレベルが作成されています。

Runitは、ディレクトリをrunsvdirに切り替えることにより、ランレベルを変更します。 プログラムが実行されています。これはrunsvchdirによって処理されます。 指図。

たとえば、singleに切り替えるには ユーザーランレベル:
# runsvchdir single

defaultの代わりに、起動時に特定のランレベルで開始するようにrunitに要求することもできます。 。 runitdir=nameを追加することでこれを行うことができます カーネルパラメータ。明らかに、ランレベルのname 存在する必要があります。つまり、ディレクトリが/etc/runit/runsvdirにある必要があります。 その名前で。

たとえば、シングルユーザーモード(つまり、single)で直接起動するには ランレベル)、runitdir=singleを追加できます カーネルパラメータに。

GRUBでは、eを押すことでこれを行うことができます ブートローダーメニューでエントリを強調表示しながらキーを押します。

Ctrl+Xを押す 指定されたパラメータでシステムを起動し、効果的にシングルユーザーモードにします。

サービスの管理

サービスディレクトリには、デーモンを管理するためのファイルと必要なスクリプトが含まれています。サービスディレクトリは/etc/svにあります ディレクトリ。

これらのサービスディレクトリは、/etc/serviceにシンボリックリンクされている必要があります それ以外の場合はrunit それらにアクセスできなくなります。

/etc/serviceにシンボリックリンクを作成する 基本的にenable 起動時に開始されるようにします。 disableできます downという名前のファイルを作成することによるサービス サービスディレクトリ内。

runitにはいくつかのプログラムがありますが、通常はsvと対話するだけで済みます。 指図。構文はsystemdと同等です のsystemctl コマンド。

サービスの開始:

# sv start <service_name>

やめる:

# sv stop <service_name>

サービスの再起動またはリロード:

# sv restart <service_name>

サービスのステータスを確認します:

# sv status <service_name>

svの書き直しもあります rsvと呼ばれるRustのコマンド 。ただし、この記事では取り上げません。以下の参考文献のリンクを確認してください。


参照:

  • Runitホームページ
  • rsv
  • Artix Wiki | Runit
  • Void Linux |サービスとデーモン– runit

Linux
  1. ProcDumpを使用してLinuxをデバッグする

  2. IPブラックリストとしてUFWを使用する

  3. Apacheでmod_clusterを使用する

  1. Notify-Send With Cronを使用していますか?

  2. Gitオートコンプリート?

  3. rsyncを使用してファイルを同期する

  1. サーバーログの使用

  2. grep を使用して逆方向に検索する

  3. gnome-terminal を使用して tmux を起動する