LoginSignup
7
9

More than 3 years have passed since last update.

備忘録 CentOS7, Tomcat8.5.11をsystemctlコマンドで起動/停止したい

Last updated at Posted at 2017-03-24

CentOS 7からはsystemdでサービスの管理がされているもんだから、インストールしたTomcat8.5.11をsystemctlで起動/停止をしてみようかと。

tomcat.serviceファイルの作成

まずは、tomcat.serviceファイルを作成。
作成場所は/etc/systemd/systemディレクトリに。
ファイルのパーミッションは 644で。

/etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat 8.5.11
After=network.target remote-fs.target nss-lookup.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot

ExecStart=/usr/local/apache-tomcat-8.5.11/bin/startup.sh
ExecStop=/usr/local/apache-tomcat-8.5.11/bin/shutdown.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

tomcatのサービスを有効にする

systemctl enable サービス名 でサービスを有効にする。

# systemctl enable tomcat.service
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /etc/systemd/system/tomcat.service.

systemctl list-unit-files サービス名 で、有効になったことを確認する。

# systemctl list-unit-files tomcat.service
UNIT FILE      STATE
tomcat.service enabled

1 unit files listed.

tomcatを起動してみる

systemctl start サービス名 でtomcatを起動する。
※.serviceの部分は省略可。

systemctl start tomcat

psコマンドで、プロセス確認を実施。

# ps -ef | grep tomcat
tomcat   22101     1 77 22:14 ?        00:00:03 /usr/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-8.5.11/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/apache-tomcat-8.5.11/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.11/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-8.5.11 -Dcatalina.home=/usr/local/apache-tomcat-8.5.11 -Djava.io.tmpdir=/usr/local/apache-tomcat-8.5.11/temp org.apache.catalina.startup.Bootstrap start
root     22118  6660  0 22:14 pts/2    00:00:00 grep --color=auto tomcat

サービスの状況を確認する。

systemctl status サービス名 -l コマンドで確認する。
※ -l ログを省略せずに出力

# systemctl status tomcat -l
● tomcat.service - Apache Tomcat 8.5.11
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (exited) since 木 2017-03-23 22:14:48 JST; 5min ago
  Process: 21687 ExecStop=/usr/local/apache-tomcat-8.5.11/bin/shutdown.sh (code=exited, status=0/SUCCESS)
  Process: 22087 ExecStart=/usr/local/apache-tomcat-8.5.11/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 22087 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/tomcat.service
           └─22101 /usr/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-8.5.11/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/apache-tomcat-8.5.11/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.11/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-8.5.11 -Dcatalina.home=/usr/local/apache-tomcat-8.5.11 -Djava.io.tmpdir=/usr/local/apache-tomcat-8.5.11/temp org.apache.catalina.startup.Bootstrap start

 3月 23 22:14:48 brighton005 systemd[1]: Starting Apache Tomcat 8.5.11...
 3月 23 22:14:48 brighton005 startup.sh[22087]: Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.11
 3月 23 22:14:48 brighton005 startup.sh[22087]: Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.11
 3月 23 22:14:48 brighton005 startup.sh[22087]: Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.11/temp
 3月 23 22:14:48 brighton005 startup.sh[22087]: Using JRE_HOME:        /usr
 3月 23 22:14:48 brighton005 startup.sh[22087]: Using CLASSPATH:       /usr/local/apache-tomcat-8.5.11/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.11/bin/tomcat-juli.jar
 3月 23 22:14:48 brighton005 systemd[1]: Started Apache Tomcat 8.5.11.

ただしく起動してるようです。

tomcatサービスを停止する

systemctl stop サービス名 でサービスを停止してみる。

# systemctl stop tomcat

psコマンドで、プロセスを確認する。

# ps -ef | grep tomcat
root     22193  6660  0 22:46 pts/2    00:00:00 grep --color=auto tomcat

停止されたようだ。

systemctl status サービス名 でステータスも確認してみる。

# systemctl status tomcat -l
● tomcat.service - Apache Tomcat 8.5.11
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 木 2017-03-23 22:45:06 JST; 2min 8s ago
  Process: 22162 ExecStop=/usr/local/apache-tomcat-8.5.11/bin/shutdown.sh (code=exited, status=0/SUCCESS)
  Process: 22087 ExecStart=/usr/local/apache-tomcat-8.5.11/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 22087 (code=exited, status=0/SUCCESS)

 3月 23 22:14:48 brighton005 startup.sh[22087]: Using JRE_HOME:        /usr
 3月 23 22:14:48 brighton005 startup.sh[22087]: Using CLASSPATH:       /usr/local/apache-tomcat-8.5.11/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.11/bin/tomcat-juli.jar
 3月 23 22:14:48 brighton005 systemd[1]: Started Apache Tomcat 8.5.11.
 3月 23 22:45:05 brighton005 systemd[1]: Stopping Apache Tomcat 8.5.11...
 3月 23 22:45:05 brighton005 shutdown.sh[22162]: Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.11
 3月 23 22:45:05 brighton005 shutdown.sh[22162]: Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.11
 3月 23 22:45:05 brighton005 shutdown.sh[22162]: Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.11/temp
 3月 23 22:45:05 brighton005 shutdown.sh[22162]: Using JRE_HOME:        /usr
 3月 23 22:45:05 brighton005 shutdown.sh[22162]: Using CLASSPATH:       /usr/local/apache-tomcat-8.5.11/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.11/bin/tomcat-juli.jar
 3月 23 22:45:06 brighton005 systemd[1]: Stopped Apache Tomcat 8.5.11.

正しく停止しているようだ。
うーん、昨日はここでエラーがでていたのだが。。。。

なにだなんだか。。。
まぁ一応OKとしようとおもったが、なんどか確認していると。。。。。

# systemctl stop tomcat
# systemctl status tomcat -l
● tomcat.service - Apache Tomcat 8.5.11
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 木 2017-03-23 22:51:23 JST; 4s ago
  Process: 22597 ExecStop=/usr/local/apache-tomcat-8.5.11/bin/shutdown.sh (code=exited, status=0/SUCCESS)
  Process: 22561 ExecStart=/usr/local/apache-tomcat-8.5.11/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 22561 (code=exited, status=0/SUCCESS)

 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.PlainSocketImpl.socketConnect(Native Method)
 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:344)
 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.Socket.connect(Socket.java:579)
 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.Socket.connect(Socket.java:528)
 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.Socket.<init>(Socket.java:425)
 3月 23 22:51:22 brighton005 shutdown.sh[22597]: at java.net.Socket.<init>(Socket.java:208)
 3月 23 22:51:23 brighton005 systemd[1]: Stopped Apache Tomcat 8.5.11.

停止はしているけど、エラーがでてるぞと。
ログみたけど、停止ログがかかれていない。。。。。
当面調査。。。

# tail -f catalina.2017-03-23.log
23-Mar-2017 22:51:10.679 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/apache-tomcat-8.5.11/temp
23-Mar-2017 22:51:10.679 情報 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
23-Mar-2017 22:51:11.162 情報 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
23-Mar-2017 22:51:11.334 情報 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
23-Mar-2017 22:51:11.363 情報 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
23-Mar-2017 22:51:11.366 情報 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
23-Mar-2017 22:51:11.379 情報 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 2128 ms
23-Mar-2017 22:51:11.475 情報 [main] org.apache.catalina.core.StandardService.startInternal サービス Catalina を起動します
23-Mar-2017 22:51:11.476 情報 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.11
23-Mar-2017 22:51:11.493 情報 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Webアプリケーションディレクトリ /usr/local/apache-tomcat-8.5.11/webapps/ROOT を配備します

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9