起動時にネットワークサービスが自動起動するように構成する方法
通常、重要なネットワーク サービスが起動時に自動的に開始されるように構成することをお勧めします。これにより、再起動時に手動で起動する手間が省け、また、手動で起動するのを忘れた場合に引き起こされる大混乱も避けられます。重要なネットワーク サービスには、SSH、NTP、httpdなどがあります。
次のコマンドを実行すると、システム サービス マネージャーが何であるかを確認できます。
ps --pid 1
上記のコマンドの出力に基づいて、次のコマンドのいずれかを使用して、各サービスを起動時に自動的に開始するかどうかを構成します。
systemdベースで
----------- Enable Service to Start at Boot -----------
systemctl enable [service]
----------- Prevent Service from Starting at Boot -----------
systemctl disable [service] # prevent [service] from starting at boot
sysvinit ベースの場合
----------- Start Service at Boot in Runlevels A and B -----------
chkconfig --level AB [service] on
----------- Don’t Start Service at boot in Runlevels C and D -----------
chkconfig --level CD service off
CentOS 8、RHEL 8、Fedora 30 以降などのsystemdシステムでは、systemctl コマンドはサービスの管理に使用されます。たとえば、無効になっているサービスを表示するには、次のコマンドを実行します。
sudo systemctl list-unit-files --state=disabled
sudo chkconfig --list [On sysvinit-based]
以下の出力では、無効になっているすべてのサービスが出力されます。ご覧のとおり、httpd サービスがリストされており、起動時に開始するように構成されていないことを示しています。
起動時にサービスを開始できるようにするには、次の構文を使用します。
sudo systemctl enable service-name
sudo chkconfig service_name on [On sysvinit-based]
たとえば、ブート実行時にhttpdサービスを有効にします。
sudo systemctl enable httpd
sudo chkconfig httpd on [On sysvinit-based]
httpd サービスが有効になっていることを確認するには、次のコマンドを実行して、有効なサービスをすべて一覧表示します。
sudo systemctl list-unit-files --state=enabled
sudo chkconfig --list | grep 3:on [On sysvinit-based]
上記の出力から、httpd サービスが有効なサービスのリストに表示されていることが明確にわかります。
systemctl および chkconfig コマンドの詳細については、次の記事を参照してください。
- Linux で「Systemctl」を使用して「Systemd」サービスとユニットを管理する方法
- Linux での基本的な chkconfig コマンドの例