本記事ではLinux(CentOS)のサービス名(プロセス名)を確認する方法について記載しています。
今回は例としてPostgreSQL 12、tomcat9.0のサービス名を確認します。
後半ではサービス名を変更する方法についても記載しています。
結論
結論としてはサービスを一覧するコマンドを実行して、名前の確認を行います。
CentOS7、8はsystemctl list-unit-files
または、
ls /usr/lib/systemd/system/
、ls /etc/systemd/system
で確認を行えます。
CentOS6以前ではservice --status-all
で確認することができます。
以降はCentOS8でサービス名を確認する例を紹介します。
systemctl list-unit-fileでサービス名を確認する
systemdのユニットファイル名を微妙に変えていたりすると、サービス名がわからなくなることがあります。
そういった場合、systemctl list-unit-files
コマンドを実行するとサービス名を一覧表できるので、そこから確認を行えます。
コマンドを実行すると以下のようなかたちでサービス(プロセス)が一覧表示されます。
ただ、このリストをそのまま探すのは少し面倒です。
[root@centos8 ~]# systemctl list-unit-files
# 中略
session-7.scope transient
arp-ethers.service disabled
auditd.service enabled
# 中略
postgresql.service disabled
# 中略
tomcat9.service disabled
# 省略
なんとなく名前がわかっている場合はgrepで対象サービスを探せます。
[root@centos8 ~]# systemctl list-unit-files | grep pos
postgresql.service disabled
postgresql@.service disabled
[root@centos8 ~]# systemctl list-unit-files | grep tom
proc-sys-fs-binfmt_misc.automount static
tomcat9.service enabled
[root@centos8 ~]#
systemctl status サービス名
コマンドでpostgresとtomcatのサービスを確認します。
2行目にサービスの概要が表示されるので確認すると、
postgresでは、postgresql.service - PostgreSQL database server
tomcatでは、tomcat9.service - Apache Tomcat application server.
と表示され、
このコマンドでそれぞれ操作するサービスが正しいことを確認できます。
[root@centos8 ~]# systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor>
Active: inactive (dead)
[root@centos8 ~]# systemctl status tomcat9
● tomcat9.service - Apache Tomcat application server.
Loaded: loaded (/usr/lib/systemd/system/tomcat9.service; disabled; vendor pre>
Active: inactive (dead)
確認したサービスを起動してみます。下記例ではtomcat9のサービスを起動しています。
[root@centos8 ~]# systemctl start tomcat9
[root@centos8 ~]# systemctl status tomcat9
● tomcat9.service - Apache Tomcat application server.
Loaded: loaded (/usr/lib/systemd/system/tomcat9.service; enabled; vendor pre>
Active: active (running) since Thu 2021-07-22 10:16:04 JST; 31min ago
Process: 1055589 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/>
Main PID: 1055596 (java)
Tasks: 34 (limit: 11394)
Memory: 72.3M
CGroup: /system.slice/tomcat9.service
└─1055596 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=>
7月 22 10:16:04 centos8.localdomain systemd[1]: Starting Apache Tomcat applica>
7月 22 10:16:04 centos8.localdomain systemd[1]: Started Apache Tomcat applicat>
lines 1-12/12 (END)
ユニットファイルを確認してサービス名を確かめる
こちらはsystemdのユニットファイルを確認する方法です。
ユニットファイルとは、ざっくり言うとサービス(プロセス)の起動停止スクリプトです。systemctlコマンドはこのファイルを元にサービスの起動停止を行います。
ユーザー独自のユニットファイルを作成することも可能です。
vi /usr/lib/systemd/system/tomcat9.service
参考: Tomcat 9.0のインストール・設定・Webアプリケーションデプロイ (CentOS 8)
システム系のユニットファイルはデフォルトで/usr/lib/systemd/system
に保存されています。
ユーザーが独自定義したものは/etc/systemd/system
に保存します。
ls /usr/lib/systemd/system/
を実行すると、次のようにsystemdのユニットファイルが表示されます。
[root@centos8 ~]# ls /usr/lib/systemd/system/
NetworkManager-dispatcher.service rngd-wake-threshold.service
NetworkManager-wait-online.service rngd.service
NetworkManager.service rpcbind.target
arp-ethers.service rsyslog.service
# 以下略
こちらも同様に、grepでなんとなくの名前で検索するとサービス名を確認できます。
[root@centos8 ~]# ls /usr/lib/systemd/system/ | grep pos
postgresql.service
postgresql@.service
[root@centos8 ~]# ls /usr/lib/systemd/system/ | grep tom
proc-sys-fs-binfmt_misc.automount
tomcat9.service
本当に自分の使用したいサービスなのか念のために確認するには、catでファイルの中身を確認します。
Descriptionの欄を確認すれば大体は判別できます。
[root@centos8 ~]# cat /usr/lib/systemd/system/postgresql.service
# 中略
[Unit]
Description=PostgreSQL database server
After=network.target
# 中略
Environment=PGDATA=/var/lib/pgsql/data
# 省略
[root@centos8 ~]# cat /usr/lib/systemd/system/tomcat9.service
[Unit]
Description=Apache Tomcat application server.
After=network.target
# 中略
EnvironmentFile=/etc/sysconfig/tomca
# 省略
サービス名の変更
余談ですが、次の手順を行うとサービス名(プロセス名)の変更を行えます。
まず現在のサービス名を確認します。
[root@centos8 ~]# systemctl status tomcat9
● tomcat9.service - Apache Tomcat application server.
Loaded: loaded (/usr/lib/systemd/system/tomcat9.service; disabled; vendor pre>
Active: inactive (dead)
次に現在のサービス名を変更します。
mv でユニットファイル名を変更したあと、ユニットファイルのリロード(systemctl daemon-reload
を行うことでサービス名を変更できます。
今回はサービス "tomcat9" を "tomcat" へ変更します。
[root@centos8 ~]# mv /usr/lib/systemd/system/tomcat9.service /usr/lib/systemd/system/tomcat.service
[root@centos8 ~]# systemctl daemon-reload
最後にサービス名の確認を行います。
[root@centos8 ~]# systemctl status tomcat
● tomcat.service - Apache Tomcat application server.
Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor pre>
Active: inactive (dead)
参考サイト
Systemd入門(1) - Unitの概念を理解する
Tomcat 9.0のインストール・設定・Webアプリケーションデプロイ (CentOS 8)