Redhat系Linuxのsystemdはサービス(アプリケーション)の起動・停止・再起動をコントロールするものです。
systemdの管理コマンドsystemctlでサービス(アプリケーション)の自動起動 / 解除 設定を行ないます。
自動起動はOSが起動したときに連動して起動させること。
今回の作業は、サーバー・エンジニア、インフラ・エンジニアでも、あまり使うことはありません。LinuxOSはサーバーで使われることが多く、そんなに起動や再起動をしないからです。
だからこそ、かんたんな作業ほどすぐ忘れてしまいます。今回はそのための備忘録です。
systemctlコマンドとは?
RedHat系Linuxは、バージョン7(RedHat7, CentOS7)からサービスの設定をsystemctlコマンドで行ないます。
サービスはアプリケーションです。Webサーバー、DBサーバー、ファイアウォールなど、サーバーアプリケーションはほとんどすべてサービスとして登録されます。
そのアプリケーションをコントロールするのがsystemctlコマンドです。
systemctlコマンドを使うサービスコントロールのアプリケーションをSystemdといいます。
以前はinitと呼ばれるアプリケーションでしていました。/etc/init.dディレクトリで作業したことがある人は分かると思います。
サービスの自動起動の有効化
systemctl enable service
サービスの自動起動の無効化
systemctl disable service
サービス自動起動の確認
systemctl is-enabled service
systemctl status service
service | サービスファイル名[***.service]。 サービス名(***)だけでもよい。 |
サービスの自動起動確認
systemctl is-enabled firewalld
enabled
is-enabledサブコマンドにサービス名を指定して確認します。
自動起動ではないときは『disabled』が表示されます。
サービスのステータスでも確認できます。
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
disabled; vendor preset: enabled
の部分です。vender presetは、アプリケーションのデフォルトの値です。
ファイアウォールは自動起動が有効化されています。アプリの性格からいってとうぜんです。
サービスの自動起動 有効 / 無効 設定
systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
サービスの自動起動のしくみはかんたんです。
/usr/lib/systemd/system/にあるサービスの設定ファイルからシンボリックリンクをつくるだけです。
シンボリックリンクのファイルは、/etc/systemd/system/につくられます。
シンボリックリンクのファイルがあれば、自動起動は有効、なければ無効です。
Redhat公式ドキュメント