サービスの管理は、システム管理者の重要な責任です。古いSysVメソッド( service
を使用)間の移行は間違いありません。 およびchkconfig
コマンド)および新しい systemd
ベースのコマンド( systemctl
など )物議を醸した。実際、多くのシステム管理者は、依然として非常に強い感情を持っています。
現実には、Red Hat Enterprise Linux(RHEL)を含む多くのディストリビューションが、 systemd
を使用してサービスの管理を開始しています。 。したがって、あなたと私は systemctl
の操作方法を知る必要があります 管理コマンド。
私は、誰もが上級者であると想定しているような著者/トレーナー/管理者ではありません。そのことを念頭に置いて、この記事は、より一般的な systemctl
をいつどのように使用するかについての基本的でわかりやすい説明が必要な人々を対象としています。 サブコマンド。最後に、すべての systemctl
をすばやく表示するための優れたトリックも提供します。 サブコマンド。
注:systemctlのマニュアルページでは、文字列の2番目の単語を「コマンド」と呼んでいますが、これはやや紛らわしいようです。 systemctl
を参照します コマンドとしてのそれ自体 、次にサブコマンドとしてそれに続く文字列 。 引数 はサービスの名前であり、構文の3番目の位置を占めます。
構文例は次のとおりです。
systemctl subcommand argument
# systemctl status sshd
systemctl
をいつどのように使用するかを説明します 。私の例のほとんどは、一般的な sshd
を使用しています サービス。
[読者も楽しんだ:心配するのをやめ、systemdを愛することをどのように学んだか]
サービスステータス
開始するのに最適な場所は、サービスの現在の機能を理解することです。最も簡単なアプローチであるstatus
の使用から始めます サブコマンド:
# systemctl status sshd

もちろん、見慣れないLinuxサーバーに座ったばかりで、 sshd
の現在のステータスを知る必要があるという考えです。 サービス。サービスのロード元の概要、状態、プロセスID(PID)、最近の変更など、他の多くの情報が提供されていることに注意してください。
systemctlステータス
コマンドは、トラブルシューティング時にも役立ちます。構成のトラブルシューティングを行うときは、 systemctl
を使用してほとんどすぐにそのステータスを確認します。 。サービスが実行されていないのに、なぜファイアウォール、SELinux、および構成ファイルを気にするのですか?
これで、SSHなどのサービスのステータスを確認する方法がわかりました。そのステータスをどのように操作しますか?
サービスの開始と停止
実行中のサービスの構成ファイルを変更する場合は、再起動する必要があります。 またはリロード サービス。そうすることで、サービスはファイルを再読み取りし、変更を実装します。昔はservice
を使っていました 以下の例のように、コマンド:
# service sshd restart
systemd
の下のサービス systemctl
を介して管理されます 指図。 systemctl
を使用してSSHサービスを再起動するには 、次のように入力します:
# systemctl restart sshd
個人的には、この構文は少し簡単だと思います。 「Systemctl、sshdを再起動してください」という文のように読めます。
サービスを停止または開始する場合の構文は似ています:
# systemctl stop sshd
# systemctl start sshd
正常に停止することを拒否するサービスは、 systemctl
を使用して強制終了できます。 、 それも。たとえば、 sshd
を強制終了します サービス、入力:
# systemctl kill sshd
サービスのリロードは少し異なります。 リロード
サブコマンドを実行すると、サービスは構成ファイルを再読み取りするだけで、 restart
サブコマンドは、現在のすべての接続を終了し、構成ファイルを再読み取りします。
たとえば、 systemctl restart sshd
と入力した場合 、現在のSSH接続はすべてドロップされます。ただし、リロードすると、既存の接続は維持されます。どちらの場合も、構成ファイルが再読み取りされ、変更が実装されます。
リロードによってダウンタイムは減少しますが、すべてのサービスがそれをサポートしているわけではありません。
start
、 stop
、 restart、
およびreload
サブコマンドは現在のランタイムにのみ影響します。
サービスの有効化と無効化
Linuxを初めて使用する多くの管理者は、 start
の違いについて混乱しています。 /停止コード> および
enable
/無効
。 start
についてはすでに説明しました 、 stop
、および restart
前のセクションで。 開始
およびstop
サービスの現在の状態を変更するために使用されます。ただし、サーバーが再起動すると、サービスの状態はデフォルトの起動設定に戻ります。つまり、 sshd
を停止すると サービスを実行してからサーバーを再起動すると、起動プロセスで構成ファイルが調べられ、 sshd
が起動するかどうかが決まります。 、指定内容によって異なります。サービスを停止してから再起動し、構成ファイルに起動時にサービスを開始するように指示されている場合、サービスは再び実行されます。
以前は、 chkconfig
を使用していました 各ランレベルのサービスのスタートアップ設定を定義するコマンド。次に例を示します:
# chkconfig --level 35 sshd on
このコマンドは、 sshd
を有効にします ランレベル3および5で起動します。
systemctl
を使用 、デフォルトの起動設定の構成は、 enable
の作業です。 およびdisable
サブコマンド。構文はstart
と同じです 、 stop
、および restart
サブコマンド。たとえば、サーバーの起動時にSSHを開始するように設定するには、次のように入力します。
# systemctl enable sshd
同様に、SSHを構成するには 起動時に開始するには、次のように入力します:
# systemctl disable sshd
サービスのデフォルトのスタートアップ構成の構成は、サービスの開始と停止と同様に簡単です。ただし、この2つを一緒に使用することについては混乱があるようです。
開始を使用して一緒に有効にする
サービスを有効にしてもサービスが開始されないのは奇妙だと感じる人もいます。たとえば、新しいプログラムをダウンロードしたばかりで、その機能をテストできるように起動し、サーバーの起動時に起動するように構成する場合は、次の2つのコマンドを入力する必要があります。
# systemctl start sshd
# systemctl enable sshd

サービスの無効化も同じように行われます。 systemctl disable sshd
と入力します サーバーの起動時にSSHが起動しないようにします。ただし、SSHが現在のランタイムで実行されている場合は、無効になっている場合でもアクティブなままです。 停止
する必要があります SSHを使用して、現在のランタイムでオフにします。
たとえば、SSHを停止し、システムの起動時にSSHが起動しないようにするには、次のように入力します。
# systemctl stop sshd
# systemctl disable sshd

サービスのstatus
を確認することを忘れないでください 次のように入力して、わからないときはいつでも:
# systemctl status sshd
別のsystemctl
を使用して、サービスが自動的に開始するように構成されているかどうかを確認できます。 サブコマンド: is-enabled
。たとえば、SSHが有効になっているかどうかを表示するには、次のように入力します。
# systemctl is-enabled sshd

たくさんのサブコマンド-トリック
かなりの数のsystemctl
について説明しました start
を含むサブコマンド 、 stop
、 restart
、 enable
、 disable
、 status
、 その他。覚えておくべきことがたくさんあります!ここで、旧友のタブ補完が機能します。システムで次の手法を試してください。systemctl
と入力します。 次に、単一のスペースを追加します。 タブを押す キーを2回押すと、bashは利用可能なすべての systemctl
を表示します サブコマンド!このタブ補完のトリックは、十分に活用しているシステム管理者はほとんどいないと思います。

[システム管理者のスキルをテストしたいですか?今日、スキル評価を受けてください。 ]
まとめ
ご覧のとおり、 systemctl
を介したサービスの管理 コマンドは本当に難しいことではありません。以前のサービス
よりもシンプルで論理的だと思います およびchkconfig
個人的にコマンド。また、サービスを管理するコマンドが2つではなく1つしかない場合にも便利です。
覚えておくべき重要なポイントは次のとおりです。
- 開始/停止/再起動を使用して、現在のランタイムを管理します。
- 構成ファイルを編集した後、開始/停止/再起動/再読み込みを使用します。
- 有効/無効を使用して、デフォルトの起動アクションを管理します。
- トラブルシューティングプロセスの非常に早い段階でステータスを使用します。
最後に、利用可能なすべての systemctl
を覚える必要はありません。 サブコマンド。 systemctl
を入力するだけです コマンドを実行し、スペースを1つ続けて、タブを押します。 2回。 Bashの組み込みのタブ補完機能が残りの作業を行います!
システム管理者は定期的にサービスを操作していることに気づきます。うまくいけば、より一般的な systemctl
をいつ使用するかについてもう少し快適になります。 サブコマンド。