Linux serviceコマンドでステータスを確認する方法
スポンサーリンク
このドキュメントの内容は、以下の通りです。
- はじめに
- Linuxのシステム起動周りの仕組み
- serviceコマンドの役割
- 任意のサービスの状態を調べる方法
- httpd のサービスの状態を調べる例
- サービスが動いてない例
- すべてのサービスのステータスを確認する方法
- systemctlコマンドでサービスのユニットを確認する
- インストールされているユニットファイルを確認する
- systemctlコマンドでユニットのステータスを確認する
- serviceコマンドが systemctlのラッパースクリプトの場合
- サービスを自動起動する
はじめに
オペレーティングシステムでは、さまざまなサービスが提供されています。システムが起動するときに、同時にサービスが開始されるものもあります。Linuxでは、サービスは、デーモンプロセスとして動作しています。Linuxではさまざまなサービスが起動しています。ウェブサイトを運営している場合は、HTTPのサービスを提供することになります。HTTPのサービスを提供するプログラムは、Apacheのhttpdやnginxなどのウェブサーバのアプリケーションがあります。
サービス・デーモンプロセスが動いているかどうかは、 ps コマンドを使用して確認する方法もあれば、 serviceコマンドや systemctl コマンドを使う方法もあります。
今回は、Linux でサービスのステータスを確認する方法についてご紹介します。もともとは、 service コマンドのために記事を作成しておりました。 service コマンド以外に systemctlコマンドを利用することもあるかと思い、 systemctlでのステータスの確認方法についても、追記いたしました。
Linuxのシステム起動周りの仕組み
Linux には、システム起動には以下の仕組みが使われています。
- SysVinit (SystemV init)
- Upstart
- systemd
SysVinit 系では service コマンドが使われ、 systemd 系では systemctl が利用されます。
centos 7 の場合は、どちらのコマンドも一見あるように見えますが、 centos 7 の service コマンドは、 systemctl コマンドのただのラッパーシェルスクリプトです。
serviceコマンドの役割
serviceコマンドは、サービスの起動、再起動、停止、ステータスの確認を行うのに利用されます。
任意のサービスの状態を調べる方法
任意のサービスの状態を確認する場合には、service コマンドを利用すると簡単です。service コマンドの第1引数にスクリプト名(サービス名)を指定し、第2引数に status を指定します。
service SCRIPT status
スクリプトは、 /etc/init.d に格納されています。 たとえば、 /etc/init.d/SCRIPT になります。 ssh であれば、 /etc/init.d/ssh になります。service コマンドを利用せずに、確認するには、 /etc/init.d のスクリプトを直接実行することで代替できます。
以下の例では、ssh のステータスを確認します。
/etc/init.d/ssh status
httpd のサービスの状態を調べる例
ここでは、古くからウェブサーバとして利用されているApache httpd サーバのサービスの状態を確認してみましょう。service httpd status
サービスが動いてない例
サービスが稼働していない場合には、以下のように表示されます。$ service ssh status * sshd is not running
もし動作していれば、次のように表示されます。
$ service ssh status * sshd is running
すべてのサービスのステータスを確認する方法
1つ1つのサービスではなく、システムのすべてのサービスのステータスを確認する方法もあります。すべてのサービスを確認する場合には、 --status-all オプションを利用します。sudo service --status-all
systemctlコマンドでサービスのユニットを確認する
systemctl コマンドで、稼働中のサービスの一覧を表示することができます。
タイプがサービスのユニットをリスト表示する場合は、以下のコマンドを実行します。
systemctl list-units --type=service
サービスのユニットを表示した実行例を以下に示します。
$ systemctl list-units --type=service UNIT LOAD ACTIVE SUB DESCRIPTION abrt-ccpp.service loaded active exited Install ABRT coredump hook abrt-oops.service loaded active running ABRT kernel log watcher abrtd.service loaded active running ABRT Automated Bug Reporting Tool atd.service loaded active running Job spooling tools auditd.service loaded active running Security Auditing Service chronyd.service loaded active running NTP client/server crond.service loaded active running Command Scheduler dbus.service loaded active running D-Bus System Message Bus firewalld.service loaded active running firewalld - dynamic firewall daemon getty@tty1.service loaded active running Getty on tty1 ● kdump.service loaded failed failed Crash recovery kernel arming kmod-static-nodes.service loaded active exited Create list of required static device nodes for the current kernel libstoragemgmt.service loaded active running libstoragemgmt plug-in server daemon lvm2-lvmetad.service loaded active running LVM2 metadata daemon lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling lvm2-pvscan@8:2.service loaded active exited LVM2 PV scan on device 8:2 network.service loaded active exited LSB: Bring up/down networking NetworkManager-wait-online.service loaded active exited Network Manager Wait Online NetworkManager.service loaded active running Network Manager polkit.service loaded active running Authorization Manager postfix.service loaded active running Postfix Mail Transport Agent rhel-dmesg.service loaded active exited Dump dmesg to /var/log/dmesg rhel-domainname.service loaded active exited Read and set NIS domainname from /etc/sysconfig/network rhel-import-state.service loaded active exited Import network configuration from initramfs rhel-readonly.service loaded active exited Configure read-only root support rngd.service loaded active running Hardware RNG Entropy Gatherer Daemon rpcbind.service loaded active running RPC bind service rsyslog.service loaded active running System Logging Service smartd.service loaded active running Self Monitoring and Reporting Technology (SMART) Daemon sshd.service loaded active running OpenSSH server daemon sysstat.service loaded active exited Resets System Activity Logs systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage systemd-journald.service loaded active running Journal Service systemd-logind.service loaded active running Login Service systemd-random-seed.service loaded active exited Load/Save Random Seed systemd-remount-fs.service loaded active exited Remount Root and Kernel File Systems systemd-sysctl.service loaded active exited Apply Kernel Variables systemd-tmpfiles-setup-dev.service loaded active exited Create Static Device Nodes in /dev systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and Directories systemd-udev-settle.service loaded active exited udev Wait for Complete Device Initialization systemd-udev-trigger.service loaded active exited udev Coldplug all Devices systemd-udevd.service loaded active running udev Kernel Device Manager systemd-update-utmp.service loaded active exited Update UTMP about System Boot/Shutdown systemd-user-sessions.service loaded active exited Permit User Sessions systemd-vconsole-setup.service loaded active exited Setup Virtual Console tuned.service loaded active running Dynamic System Tuning Daemon vdo.service loaded active exited VDO volume services vgauthd.service loaded active running VGAuth Service for open-vm-tools vmtoolsd.service loaded active running Service for virtual machines hosted on VMware LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 49 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
インストールされているユニットファイルを確認する
systemctl コマンドを用いて、インストールされているユニットファイルを確認できます。
systemctl list-unit-files
正しいユニット名がわからないときは、grep と組み合わせて探すこともできます。
$ systemctl list-unit-files |fgrep httpd httpd.service disabled
systemctlコマンドでユニットのステータスを確認する
systemd 系の systemctlコマンドで、サービスというかユニット (Unit) のステータスが確認できます。service コマンドは、サービスのステータスを教えてくれましたが、かなり簡素な情報でした。実行している、とまっている、といった情報のみでした。service コマンドに比べると、 systemctl では、多くの情報が提供されています。
提供される情報の例を以下に示します。
- いつ起動したか
- どれぐらい稼働しているのか
- 実行されているデーモンのコマンドのパス
- デーモンのプロセスID
- デーモンプロセスのログ
service サービス status systemctl status ユニット
以下は、sshd のユニットに関するステータスを確認する例です。
[kaworu@localhost ~]$ systemctl status sshd sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 土 2020-06-13 11:07:34 JST; 3min 23s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 7130 (sshd) CGroup: /system.slice/sshd.service └─7130 /usr/sbin/sshd -D 6月 13 11:07:34 localhost.localdomain systemd[1]: Starting OpenSSH server daemon... 6月 13 11:07:34 localhost.localdomain sshd[7130]: Server listening on 0.0.0.0 port 22. 6月 13 11:07:34 localhost.localdomain sshd[7130]: Server listening on :: port 22. 6月 13 11:07:34 localhost.localdomain systemd[1]: Started OpenSSH server daemon. 6月 13 11:09:07 localhost.localdomain sshd[7455]: Connection closed by 172.16.0.1 port 62925 [preauth] 6月 13 11:09:22 localhost.localdomain sshd[7461]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.16.0.1 user=kaworu 6月 13 11:09:25 localhost.localdomain sshd[7461]: Failed password for kaworu from 172.16.0.1 port 62933 ssh2 6月 13 11:09:27 localhost.localdomain sshd[7461]: Accepted password for kaworu from 172.16.0.1 port 62933 ssh2 6月 13 11:10:01 localhost.localdomain sshd[7503]: Accepted password for kaworu from 172.16.0.1 port 62949 ssh2 6月 13 11:26:44 localhost.localdomain sshd[7621]: Accepted publickey for kaworu from 172.16.0.1 port 63864 ssh2: RSA SHA256:ZZ...省略
sshdのログが表示されています。ssh でパスワードログインに失敗したよ、パスワードログインしたよ、公開鍵認証でログインしたよ、といった情報も提供されます。
実行中でない httpdのステータスを確認してみましょう。 Active のところに、inactive(dead) と表示されています。
$ systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:httpd(8) man:apachectl(8) 6月 13 14:34:27 localhost.localdomain systemd[1]: Starting The Apache HTTP Server... 6月 13 14:34:27 localhost.localdomain httpd[84211]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message 6月 13 14:34:28 localhost.localdomain systemd[1]: Started The Apache HTTP Server. 6月 13 14:34:44 localhost.localdomain systemd[1]: Stopping The Apache HTTP Server... 6月 13 14:34:45 localhost.localdomain systemd[1]: Stopped The Apache HTTP Server.
比較用に httpd の起動中に systemctl でステータスを確認した結果も以下に掲載します。
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since 土 2020-06-13 14:37:54 JST; 3s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 84247 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─84247 /usr/sbin/httpd -DFOREGROUND ├─84248 /usr/sbin/httpd -DFOREGROUND ├─84249 /usr/sbin/httpd -DFOREGROUND ├─84250 /usr/sbin/httpd -DFOREGROUND ├─84251 /usr/sbin/httpd -DFOREGROUND └─84252 /usr/sbin/httpd -DFOREGROUND 6月 13 14:37:54 localhost.localdomain systemd[1]: Starting The Apache HTTP Server... 6月 13 14:37:54 localhost.localdomain httpd[84247]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message 6月 13 14:37:54 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
serviceコマンドが systemctlのラッパースクリプトの場合
centos 7 の場合、 service コマンドがあるように見えますが、実は、 systemctl を実行するためのただのラッパーシェルスクリプトになっています。実行してみると以下のようになります。 systemctl と結果は同じなので、省略して記載しています。
[kaworu@localhost ~]$ service sshd status Redirecting to /bin/systemctl status sshd.service sshd.service - OpenSSH server daemon 以下省略
サービスを自動起動する
サービスは、システム起動時(OSを起動したとき)に同時に起動することができます。サービスの自動起動は、CentOSでは systemctlで設定を行い、 Ubuntu の場合 update-rc.d で設定ができます。以前([2012-10-21-1]) は、chkconfig を利用していました。
参照しているページ (サイト内): [2012-10-21-1]
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12