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

心配するのをやめてsystemdを愛することをどのように学んだか

私が試している、リンゴ。私は羊飼いになるために一生懸命努力しています–ジュールスウィンフィールド[パルプフィクション、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コンテナを制御するにはどうすればよいですか?

この情報がお役に立てば幸いです。


Linux
  1. Systemdのスタートアップスクリプトを書く方法は?

  2. Systemdサービスをパッケージ化する方法は?

  3. CentOSからClamAVサービスを停止して無効にする方法は?

  1. systemd RHEL 7 Linuxサーバーでサービスを開始、停止、再起動します

  2. Zimbra サービスを開始、停止、再起動する方法

  3. ユーザーのログイン後に systemd サービスを開始し、ユーザーのログアウト前に停止する方法

  1. Dovecotをインストールして構成する方法

  2. LinuxでSystemdサービスを作成する方法

  3. systemd サービスの出力をファイルにリダイレクトする方法