(0)目次&概説
(1) 記事の目的
(1-1) 目的
(1-2) 前提条件
(2) デーモン/サービスとは?(CentOS6以前)
(2-1) デーモン/サービスとは?
(2-2) SystemVでのサービス管理について
(2-3) 「/etc/profile」ファイルについて
(3) デーモン/サービスとは?(CentOS7以降)
(3-1) systemdによるサービス管理について
(3-2) サービス起動/停止/再起動コマンド
(3-3) サービス状態確認コマンド
(3-4) サービス自動起動コマンド
(1) 記事の目的
(1-1) 目的
Linuxにおけるデーモンの意味を、具体的にCentOS6以前(System V)とCentOS7以降(systemd)に分けて見ていく事で理解を深め、また常用のコマンドは使いやすいように纏めること。
(2) デーモン/サービスとは?(CentOS6以前)
(2-1) デーモン/サービスとは?
・デーモンとはLinux系のOSにおいて、バックグラウンドで動作するプロセスの事を指します(ユーザとの対話なし)
・Windowsでは「サービス」がデーモンに相当する役割を担っています。
(2-1-1) 起動中のサービス(≒デーモン)確認
service --status-all
(図211)①
(2-1-2) サービスの起動/停止/再起動/ステータス確認
service [Service Name] start service [Service Name] stop service [Service Name] restart service [Service Name] status
(図212)②
(2-2) SystemVでのサービス管理について
・「/etc/init.d/」には「SystemV」(CentOS6以前で利用されていたLinuxの伝統的なサービス管理)で利用されるサービススクリプト(≒デーモン起動スクリプト)が格納されています。
・これらはカーネル起動時に最初に起動するサービスが含まれており、start/stop/restartといった命令を実行できます(※ただし起動時は必ずしもOS起動時ではなく、ランレベルで制御)
・またデーモン(≒サービス)の起動や停止等の操作に関しては、このディレクトリ配下のスクリプトを指定しての実施も可能です。
/etc/init.d/[Service Name] start /etc/init.d/[Service Name] stop /etc/init.d/[Service Name] restart /etc/init.d/[Service Name] status
(図221)
(2-3) 「/etc/profile」ファイルについて
(3) デーモン/サービスとは?(CentOS7以降)
(3-1) systemdによるサービス管理について
・systemdはCentOS7から導入されたサービス管理の仕組みで、CentOS6等で利用されていた「SysV initマネージャ」の後継として多くのLinuxディストリビューションで導入されています。
・systemdはLinuxカーネルによって開始される最初のプロセスでPID=1を取得し、全てのプロセスの親プロセスになります。
(3-2) サービス起動/停止/再起動コマンド
(3-2-1) サービスの停止
# systemctl stop [Service Name].service
(3-2-2) サービスの起動
# systemctl start [Service Name].service
(3-2-3) サービスの再起動
# systemctl restart [Service Name].service
(3-2-4) サービス設定の再読み込み
サービスによっては「reload」をサポートしている場合があります。
# systemctl relaod [Service Name].service
(図320)
(3-3) サービス状態確認コマンド
(3-3-1) サービスの状態を確認
# systemctl is-active [Service Name].service
(3-3-2) サービスの詳細な状態確認
# systemctl status [Service Name].service
(3-3-3) サービスの一覧表示
# systemctl list-unit-files -t service
(図333)
右側に表示されるステータスの意味は下記の通りです。
→「enabled」→システム起動時に自動で有効化する
→「disabled」→システム起動時に有効化されない
→「static」→システム起動時に有効化されない&自動起動が未設定
→「bad」→ファイルが無効であるかエラーが発生している
(3-3-4) サービスの検索(サービス名の部分一致)
# systemctl list-unit-files -t service | grep "[Partial Service Name]" # systemctl list-unit-files -t service | grep "tomcat"
(3-4) サービス自動起動コマンド
サービスによってはデフォルトで自動起動(システム起動時)にならないものもあるため、その場合は「enable」オプションを使い手動で自動起動を有効化します。
(3-3-1) 自動起動の有効化
# systemctl enable [Service Name].service
(3-3-2) 自動起動の無効化
# systemctl disable [Service Name].service
(3-3-3) 自動起動の有効化設定チェック
# systemctl is-enabled [Service Name].service