ホーム テクノロジー LINUX Linux で起動時にサービスを自動開始するにはどうすればよいですか?

システム管理者が知っておくべき重要事項の 1 つは、サーバーが再起動されるとサービスが自動的に開始されるように、起動時にサービスを構成する方法です。

サーバーの再起動には、次のようなさまざまな理由が考えられます。

  • 毎週、毎月のスケジュール
  • ハードウェア/カーネルの問題による予期せぬ問題

適切な構成を行うことで、再起動するたびに手動で起動する必要がなくなります。

ちょっとした自動化。そうじゃない?

次の例は、 DigitalOceanサーバーでテストされた 2 つの人気のあるディストリビューションのものです。

CentOS または RHEL 6.x

次の例では、Apache HTTP サーバーを使用していますが、Red Hat Enterprise Linux (RHEL) または CentOS 6 バージョンで起動時に開始する他のサービスでも手順は同じです。

任意のスクリプト ファイル名を保持できますが、ここではhttpdを保持しています。

  • Linux サーバーの root ユーザーになります。
  • /etc/init.d/ にスクリプトを作成またはコピーします。
 [root@Chandan init.d]# ls -ltr httpd
-rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
[root@Chandan init.d]#

Linux または CentOS でデフォルトで利用可能なchkconfigユーティリティを使用します。

  • --addパラメータを指定したchkconfigを使用して、起動時に開始するスクリプトを追加します
[root@Chandan init.d]# chkconfig --add httpd
[root@Chandan init.d]# chkconfig httpd on
  • --listを使用してスクリプトが正常に追加されたことを確認します
[root@Chandan init.d]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@Chandan init.d]#

それだけです! httpdスクリプトは、Linux ブート時にサービスを開始するために呼び出されます。

自動開始サービスを無効にする必要がある場合は、次のコマンドを使用できます。

 chkconfig httpd off
chkconfig --del httpd

RHEL または CentOS 7.x/8.x

RHEL 7 で起動時にサービスを構成する手順は、RHEL 6 とは若干異なります。サービスの管理には systemd が使用されます。

Apache、PHP、MySQL、Nginx スクリプトなどのほとんどのソフトウェアは、インストール時にサービスに追加されます。

PHP-FPMの例を見てみましょう。

まず最初に、php-fpm のステータスを見てみましょう (これは/usr/lib/systemd/system/にすでにスクリプトがあることを前提としています)

 [root@instance-1 ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: inactive (dead) 
[root@instance-1 ~]#

ご覧のとおり、ステータスは無効になっています。これは、起動時に開始するように構成されていないことを意味します。

systemctl使用して起動時に php-fpm が起動できるようにしましょう

[root@instance-1 ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@instance-1 ~]#

さて、ステータスを見てみましょう

[root@instance-1 ~]# systemctl status php-fpmphp
php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)    Active: inactive (dead) 
[root@instance-1 ~]#

php-fpm はブート時に開始するようにすべて設定されています。サーバーを再起動してテストしてみましょう。

起動時にサービスの開始を無効にする必要がある場合は、以下のコマンドを使用できます。

 systemctl disable php-fpm

systemd と起動時のサービスの自動開始について説明しているこの投稿も参照してください。

Ubuntu

Ubuntu での自動開始サービスの構成は少し異なります。スクリプト名をNginxとしましょう

  • rootでUbuntuサーバーにログインします
  • スクリプトを /etc/init.d/ フォルダーにコピーします
  • 以下のコマンドを実行します
update-rc.d nginx defaults
  • サーバーを再起動して、サービスが開始されていることを確認します。

これは私にとって役に立ちましたし、あなたにとっても有益であると信じています。

システム管理は常に楽しくてやりがいのある仕事です。システム管理でキャリアを強化したい場合は、このUdemy コースを参照してください。

次に、Linux が突然再起動する理由を見つける方法を確認してください。
CentOS 6.x に PHP-FPM 5.6 をインストール/アップグレードする場合は、ここに進んでください。

「 Linux で起動時にサービスを自動開始するにはどうすればよいですか?」についてわかりやすく解説!絶対に観るべきベスト2動画

Linuxのインストール、起動、接続、切断と停止(Linux学習)
システムの起動とLinuxカーネル(Linux学習)

Share via
Copy link