サービスの管理

Linuxをサーバーとして動かすだけでなく他の用途においても重要となる「サービスの管理」について解説をします。【連載コラム:Linuxシステム管理標準教科書を読む(5)】

最終更新日:2024年06月07日

Linuxの基本的なスキルを習得したら、Linuxサーバーをシステムとして長期に運用管理していくためのスキルを身につけるのはいかがでしょうか。このコラムでは、「Linuxシステム管理標準教科書」の全体調整を担当した筆者が改めて大切なポイントを解説していきます。

サービスの管理は、Linuxをサーバーとして動かすだけでなく、その他の用途においても重要なポイントです。教科書執筆時と現在のディストリビューションではかなり仕組みが変わったため、本文のSysV initは過去のディストリビューションを扱うときのための知識として、現在のディストリビューションにおいては第7章にあるsystemdについて学ぶとよいでしょう。


SysV initの概要

SysVとは、UNIXのバージョンであるSystem Vを指します。System V Release 4、略してSVR4は様々な商用UNIXが採用していたバージョンです。そこで用意された機能であるSysV initはLinuxにも受け継がれました。

SysV initは、システムの状態をランレベルで表し、それぞれのレベルになる際にサービスを起動したり、停止したりするという動作を行います。各サービスの起動や停止はそれぞれ用意されたシェルスクリプトを実行します。このようにすることで、システムの状態を管理しやすくしたのがSysV initです。

systemdについて

systemdは、SysV initを置き換えるために開発されました。SysV initは、シェルスクリプトを1つずつ実行してサービスを起動し、システムを起動状態にしたり、システムの再起動や停止を行ったりするため、起動や停止に大変時間がかかるようになっていました。

そこでsystemdでは、サービスの起動や停止を並列化して、高速に起動できるようにしています。

systemdのユニット

systemdはユニットとして様々なものを管理しています。ユニットには以下のものがあります。

service従来のサービスと同様
targetサービスを取りまとめるためのユニット
mountマウントポイント
swapスワップ領域
deviceデバイス

通常のシステム管理では、serviceを主に取り扱います。targetはSysV initのランレベルに相当しますが、GUI起動かCUI起動か、ということを変えるぐらいにしか使いません。その他のユニットも同様で、そのようなものがある、という程度にひとまず覚えておけば大丈夫です。

systemctlコマンド

systemdの操作は主にsystemctlコマンドを通じて行います。よく使うのはサービスの起動と停止、そしてシステム起動時にサービスを自動起動する設定です。

サービスの起動と停止

サービスの起動と停止は、systemctlコマンドに以下のサブコマンドを付けて実行します。

start起動
stop停止

サービスの再起動と設定のみ読み込みの違い

サービスの再起動はrestartですが、reloadというサブコマンドもあります。

restart再起動
reload設定のみ読み込ませる

reloadはサービスプロセスを停止せず、設定ファイルを読み込ませて適用するという動作をします。再起動のためにサービスプロセスを一旦停止してしまうと、ネットワーク経由での接続やその他の状態を破棄することになってしまうため困る場合が出てきます。設定を変更して、以後有効にしたい場合にはreloadを使いますが、サービスによって、あるいは変更した設定によってreloadが通用するかどうか異なるので、確認が必要です。

この他にも、様々なsystemctlのサブコマンドの使用方法を教科書では実例を交えて解説しています。実際に動作を確認して、それぞれの機能を覚えるようにしてください。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

バックナンバー

第4回:ネットワークの管理
第3回:root権限の管理
第2回:SSH
第1回:ユーザーとグループの管理

ページトップへ