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

Ubuntu Systemd/Upstartでサービスを有効または無効にする方法

多くの場合、Ubuntuシステムでサービスを一時的または永続的に有効または無効にする必要があります。場合によっては、起動時にsshやWebサーバーなどの特定のサービスを自動的に起動する必要がある場合もあれば、不要になりCPUとRAMを占有しているサービスを無効にする必要がある場合もあります。

このチュートリアルでは、Ubuntuでサービスを有効または無効にする方法を見ていきます。これを行うには、Ubuntuには3つの主要なinitシステムがあることを最初に理解する必要があります

  • Systemd
  • 起動
  • SysV

各initシステムには、サービスを開始および停止する方法が異なります。これらのそれぞれを見ていきます。

Systemdinitでサービスを有効または無効にする方法

systemdでサービスを開始するには 次のようにコマンドを実行します:

systemctl start service-name

たとえば、Apache Webサービスを開始するには、

を実行します。
systemctl start apache2

サービスが実行されていることを確認するには、

を実行します
systemctl status apache2

出力

● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Thu 2018-03-15 17:09:05 UTC; 35s ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/apache2.service
           ├─2499 /usr/sbin/apache2 -k start
           ├─2502 /usr/sbin/apache2 -k start
           └─2503 /usr/sbin/apache2 -k start

Mar 15 17:09:04 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:09:04 ip-172-31-41-251 apache2[2475]:  * Starting Apache httpd web ser
Mar 15 17:09:05 ip-172-31-41-251 apache2[2475]:  *
Mar 15 17:09:05 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.

サービスを停止するには 実行中のサービス

systemctl stop apache2

サービスが実行されていないことを確認するには、実行します

systemctl status apache2

出力

● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: inactive (dead) since Thu 2018-03-15 17:19:47 UTC; 12s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2822 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS
  Process: 2687 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCE

Mar 15 17:10:11 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:10:11 ip-172-31-41-251 apache2[2687]:  * Starting Apache httpd web ser
Mar 15 17:10:12 ip-172-31-41-251 apache2[2687]:  *
Mar 15 17:10:12 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.
Mar 15 17:19:46 ip-172-31-41-251 systemd[1]: Stopping LSB: Apache2 web server...
Mar 15 17:19:46 ip-172-31-41-251 apache2[2822]:  * Stopping Apache httpd web ser
Mar 15 17:19:47 ip-172-31-41-251 apache2[2822]:  *
Mar 15 17:19:47 ip-172-31-41-251 systemd[1]: Stopped LSB: Apache2 web server.

起動時にapache2サービスを有効にするには

systemctl enable apache2

起動時にapache2サービスを無効にするには

systemctl disable apache2

サービスを再開するには

systemctl restart apache2

サービスが現在、次回の起動時に開始するように構成されているかどうかを確認するには

systemctl is-enabled apache2

出力

Executing /lib/systemd/systemd-sysv-install is-enabled apache2
enabled

サービスがアクティブかどうかを確認するには

systemctl is-active apache2

出力

active

Systemdサービスを完全に削除する方法

パッケージをインストールし、後でそれが不要になったと判断した場合はどうなりますか。どうやって完全に削除しますか?以下のコマンドに従ってください。

まず、サービスを停止します

systemctl stop service-name

次に、サービスを無効にします

systemctl disable service-name

systemdでのサービスの削除

rm /etc/systemd/system/service-name
rm /etc/systemd/system/service-name/[related symlinks]

systemdをリロード

systemctl daemon-reload

最後に実行します

systemctl reset-failed

Upstartinitでサービスを有効または無効にする方法

upstartinitシステムはsystemdの直前に発表されました。Ubuntu9.10からUbuntu14.10で使用されていました。その後、Ubuntu15.04以降のバージョンでsystemdinitの舗装方法が段階的に廃止されました。この例では、Ubuntu 14.04でサービスを開始および停止し、有効化および無効化する方法を見てみましょう。

Upstartは、サービスを制御するために構成ファイルを利用します。これらのファイルは、/ etc/initディレクトリに保持されます。これらのファイルは、スタンザに編成されたプレーンテキストのセクションで構成されており、各スタンザはサービスとその機能を説明しています。

サービスが実行されているかどうかを確認するには 以下のコマンドを実行します

initctl status service-name

または

service service-name status

または

status service-name

この例では、Linuxプリントサーバーであるcupsのステータスを確認します。

 initctl status cups

または

service cups status

または

status cups

出力

cups start/running, process 3029

サービスを停止するには以下のコマンドを実行します

initctl stop cups

または

service cups stop

または

stop cups

出力

cups stop/waiting

Upstartinitでサービスを有効にするには

/etc/init/*.confファイルには、「 respawn」があります。 "予期せずクラッシュした場合、またはシステムが再起動した場合にサービスをジャンプスタートするディレクティブ。通常はデフォルトで有効になっています。

たとえば、以下の/etc/init/cups.confファイル

最初の引数(3)は再起動を試行する試行回数であり、2番目の引数(12)は再試行間の時間間隔です。自動再起動に失敗した場合。停止状態に保たれます。

upstartinitでサービスを無効にするには

以下のコマンドを実行します

echo manual >> /etc/init/service.override

これにより、ジョブ定義をまったく変更せずにサービスを無効にするオーバーライドファイルが作成されます。
カップサービスの場合、コマンドは

echo manual >> /etc/init/cups.override

システムを再起動すると、カップは停止状態になります。サービスを再度有効にする場合は、/ etc / init/cups.overrideファイルを削除する必要があります。

Sysv-rc-confツール

これはテキストベースのコンソールであり、開始がスケジュールされているさまざまなサービスとランレベルの概要を示します。次のコマンドを使用してインストールできます

apt-get install sysv-rc-conf

ツールを実行するには、

を実行します
sysv-rc-conf

ジョブ-管理ツール

これは、GUI環境でサービスとプロセスを制御できるようにするもう1つの機能です。を実行してこれをインストールできます。

apt-get install jobs-admin

SysVinitでサービスを有効または無効にする方法

SysVinitrunでサービスを有効にするには

update-rc.d enable service-name

たとえば、Apache Webサーバーを有効にする場合は、

を実行します。
update-rc.d enable apache2

サービスを無効にするには、

を実行します
update-rc.d disable service-name

update-rc.d disable apache2

ほぼすべてのLinuxシステムは、Ubuntu、Debian、RHEL、およびCentOSのSystemdinitで実行されます。したがって、サービスを開始、停止、有効化、および無効化するために、より多くのsystemctlコマンドを使用することに気付くでしょう。この記事に示されているコマンドを試してみることを歓迎します。ありがとうございます。

関連項目:

  • LinuxでSystemdサービスを管理するためのSystemctlコマンド

Ubuntu
  1. Ubuntu22.04LTSでSSHサービスを有効にする方法

  2. サービスを設定する方法は?

  3. Ubuntu で Wayland を有効または無効にする方法

  1. Ubuntu18.04でUFWファイアウォールを有効/無効にする方法

  2. Wifiへの自動接続を無効/有効にする方法は?

  3. Ubuntu でサービスを無効にする方法

  1. Ubuntu20.04デスクトップでWaylandを有効/無効にする方法

  2. Ubuntu20.04でSELinuxを無効/有効にする方法FocalFossaLinux

  3. Ubuntu22.04デスクトップでWaylandを有効/無効にする方法