こんばんわ、ミツです。
今回は「systemctl」コマンドについて解説していきます。
目次
systemctl概要
サービスやターゲット等、各ユニットの管理はsystemctlコマンドによって行うことができます。
コマンド:systemctl
オプション
オプション | 説明 |
-a(--all) | 非アクティブ(inactive)なユニットも含めてロードされているユニットを全て表示する。 |
-l(--full) | ユニット名等を省略しないで表示 |
サブコマンド
サブコマンド | 説明 |
start | ユニットを開始します |
restart | ユニットを再起動します |
stop | ユニットを停止します |
status | ユニットの状態を表示します |
enable | システム起動時にユニットを自動的に開始します |
disable | システム起動時にユニットを自動的に停止します |
list-units | アクティブな全てのユニットを表示します(サブコマンド省略中のコマンド) |
list-unit-files | インストールされている全てのユニットを表示します |
cat | ユニット設定ファイルの内容を表示します |
edit | ユニット設定ファイルの内容を新規編集します |
実行例
それでは実行例を紹介していきます。
ユニットを指定するとき、ユニットタイプがserviceの場合はサフィックス「.service」は省略できます。
例えば「systemctl status httpd.service」は「.service」を省略し、「systemctl status httpd」として実行できます。
表示結果にはユニット状態が表示されています。詳細については下記となります。
・ユニット状態について
STATE | 説明 |
enabled | システム起動時にデフォルトでサービスを起動状態にします |
disabled | システム起動時にデフォルトでサービスを停止状態にします |
static | staticは他のユニットに依存するものを表しています。そのため単体で有効/無効が設定できないです。 |
起動しているユニットを表示します
「avtive(起動中)」のサービスが一覧表示されます。
ユニットを開始します
ユニットを開始させます。
ユニットを停止します
ユニットを停止させます。
ユニットを再起動します
ユニットを再起動することができます。
ユニットの状態を表示します
サービスを起動したり、停止したりした結果は「status」で確認できます。
ユニットをシステム起動時に起動するようにします
システム起動時に自動でユニットを起動させる際に利用します。自動起動が「disable」な状態から「enable」に変更すると下記のような結果になります。
ユニットをシステム起動時に停止している状態にします
システム起動時に自動でユニットを起動しない際に利用します。自動起動が「enable」な状態で「disable」に変更すると下記のような結果になります。
起動中のユニットをすべて表示します
起動中のユニットをすべて表示します。
「systemctl or systemctl list-units」 で起動中のサービスを表示し、その結果を標準入力として「grep」コマンドに渡し、「grep」コマンドで特定の文字列を検索します。
インストールされている全ユニットを表示します
インストールされている全ユニットを調べるには、「systemctl list-unit-files」を使用します。一覧表示で状態を確認できるので便利です。
また特定のサービスを調べたい場合は、「|(パイプ)」を利用し「grep」コマンドで調べられます。
grepコマンドについて過去執筆しましたので、興味がありましたらご覧ください
ユニットの設定ファイルの内容を表示します
「sshd」の設定を表示しています。ユニットの設定情報を確認するのに使用します。
ユニット設定ファイルの内容を新規編集します
ユニットの設定ファイルを変更するには「edit」サブコマンドを利用します。
実行すると、「vi」のようなエディッタ画面に移行します。今回の例では適当な文字列を追記します。何も記載しない場合は「ctrl」 + 「X」で閉じます。
変更後、再度「systemctl cat sshd」確認すると、文字列が追記されています。
まとめ
今回は以上となります。サービスを起動や停止する際に必須のコマンドになっております。サービスの状態を確認したり、接続できなかったら是非紹介したコマンドを利用して確認してみてください。