CentOS 7からはsystemdでサービスの管理がされているもんだから、インストールしたTomcat8.5.11をsystemctlで起動/停止をしてみようかと。
tomcat.serviceファイルの作成
まずは、tomcat.serviceファイルを作成。
作成場所は/etc/systemd/systemディレクトリに。
ファイルのパーミッションは 644で。
[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 を配備します