私が試している、リンゴ。私は羊飼いになるために一生懸命努力しています–ジュールスウィンフィールド[パルプフィクション、1994]
何年もの間、投稿、スレッド、ツイートでコミュニティ戦争があり、systemd
信用を失い、批判されていますが、それは本当にひどいのでしょうか?よくわかりませんが、システム管理者としての私の主なタスクの1つは、各サーバーのサービスを管理および監視することです。近年、ほとんどのディストリビューションでこのsystemd
が実装されています。 標準として。
システム管理者は絶えず自分自身を改革し、私たちは常に研究と学習を行っています。それでは、実践的なsystemd
を試してみましょう。 新しいスキルを開発します。従来のinit
とは異なります 、ブートプロセスがシーケンシャルである場合、systemd
並列化ブートの概念を使用して、並列化を必要とする各サービスを開始するためのソケットを作成します。次に、この動作により、それらのソケットを抽象化し、それらのプロセスを制御グループに割り当てることにより、他のデーモンと対話できるようになります。プロセスは、プロセスID(PID)ではなく、これらのコントロールグループを使用して追跡されます。これにより、起動プロセスが簡素化され、開始時間が短縮されます。
systemd
で 、サービスはユニットファイルで定義されます デーモンと動作ディレクティブを使用します。 /etc/systemd/system/
ディレクトリは、作成またはカスタマイズするユニットファイル用に予約されています。
サービスを作成するには、<unit_name>.<service>
の形式でサービスを作成する必要があります 。
このユニットファイルは、ExecStart
に示されているスクリプトを開始します <user>
のオプション User
で設定 。スクリプトが失敗または停止した場合、Restart
に示されているように再起動が試行されます オプション。 StandardOutput
およびStandardError
オプションを使用すると、スクリプトの標準出力とエラー出力がsystemd
に書き込まれます。 ログ。
私の最近の経験では、実際の日常の例として、コンテナー内で実行されている小さなWebサービスを備えたサーバーがありました(はい、私は知っていますが、あなたは顧客を知っています)。サービスを最適化および自動化するために、systemd
を作成しました ユーザーがsystemctl
を介してコンテナのライフサイクルを制御できるようにするPodmanコンテナのユニットファイル 。
ユニットファイルを/etc/systemd/system/myhttpservice.service
にコピーした後 、systemd
をリロードします 次のコマンドを使用したマネージャー構成:systemctl daemon-reload
。次に、コンテナをsystemd
として処理できます。 -マネージドサービス:
# systemctl start myhttpservice.service ← to start the container
# systemctl status myhttpservice.service ← to check the container service status
# systemctl start myhttpservice.service ← to stop the container
systemd
で管理されている場合、コンテナの機能は影響を受けません。 。 Podmanコマンドを使用して、コンテナの状態を監視することもできます。
[root@server ~]# podman healthcheck run myhttpservice
healthy
だから心配しないでください。 Systemdはあなたを助けることができます、ただそれを信頼してください。詳細を知りたい場合:
- RHEL7systemdの基本
- systemdの謎を解き明かす
- Red Hat EnterpriseLinux7用のsystemdチートシート
- Podmanの紹介
- Podmanを使用してコンテナの活力と可用性を監視する
- systemdを介してpodmanコンテナを制御するにはどうすればよいですか?
この情報がお役に立てば幸いです。