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

systemctlの使用を開始する

サービスの管理は、システム管理者の重要な責任です。古い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をいつ使用するかについてもう少し快適になります。 サブコマンド。


Linux
  1. systemctlを使用して複数のサービスインスタンスを管理する

  2. Zshの使用を開始する

  3. lsの使用を開始する

  1. 相互運用性のためのSambaの使用開始

  2. LinuxでPostgreSQLを使い始める

  3. Plesk リセラーアカウントの使用を開始する

  1. GnuCashの使用を開始する

  2. Etcher.ioを使い始める

  3. LinuxでSSHを使い始める