システム管理者が知っておくべき重要事項の 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 をインストール/アップグレードする場合は、ここに進んでください。