systemd(および/またはSysV)デバイスからのブート停止

systemd(および/またはSysV)デバイスからのブート停止

私は現在、Linux仮想マシンの管理を支援するために設計されたデーモンを作成しています。ログインはできませんが、ネットワークを使用できる状態にシステムを設定できる必要があります。どうすればいいですか?

ベストアンサー1

ユーザーログインブロックが変更する必要がある唯一のシステムアクティビティではない可能性があるため、これらのシステムメンテナンスアクティビティの新しいsystemdターゲットを作成します。現在のグラフィックモードを変更したり、ユーザーがログアウトしないように、このターゲットをデフォルトのターゲットに依存させます。

/etc/nologinファイルを作成または削除してログインをブロックする新しいシステムサービスを作成します(/etc/nologinのしくみについては/etc/pam.dでpam_nologinを使用するを参照)。作成した/etc/nologinファイルのみを削除するように注意してください(マジック文字列の内容など)。新しい systemd ターゲットがサービスを希望するようにします。

これにより、「ユーザー」は引き続き実行されます。たとえば、gdm はログイン画面を表示します。ほとんどの仮想マシンは、負荷共有クラスタでマシンを登録解除する必要がある役割に対するコマンドライン以外のサービスへのユーザーログインをサポートするために存在します。 「ユーザーなし」と言うとき、何を意味するのかを明確に説明する必要があります。

システムアップデートの経験則は、通常の動作中にダウンロードして準備し、システムを再起動するときに適用するのが最善です。 Systemdには、利用できるいくつかのフックがあります。使用方法については、pkconシステムを参照してください。おそらく、新しいセッションを取得または許可しない「ドレーニング」状態が必要になります(これは、クラスターから分離されているかのように自動的に発生する可能性があり、上記のように新しいターゲットが必要な場合があります)。

Linux仮想マシンの管理に関する多くの作業が行われ、Ansible、Puppetなどを中心に大規模なコミュニティがあります。だから私はあなたが別のデーモンを書いているという事実に少し驚きました。

おすすめ記事