首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Systemd tomcat.service失败,没有错误

Systemd tomcat.service失败,没有错误
EN

Stack Overflow用户
提问于 2016-10-31 01:34:15
回答 1查看 16.6K关注 0票数 5

我将Tomcat配置为使用CentOS 7.2上的Systemd作为服务运行。我可以毫无问题地启动Tomcat:

代码语言:javascript
复制
sudo systemctl start tomcat

我可以访问闪屏,管理器应用程序,甚至部署应用程序。然后我关闭了Tomcat:

代码语言:javascript
复制
sudo systemctl stop tomcat

我没有看到任何错误。但之后我会检查状态:

代码语言:javascript
复制
sudo systemctl status tomcat

● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2016-10-30 17:27:19 UTC; 2s ago
  Process: 10833 ExecStop=/bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 10785 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 10795 (code=exited, status=143)

Oct 30 17:26:31 java2016 systemd[1]: Starting Apache Tomcat Web Application Container...
Oct 30 17:26:31 java2016 startup.sh[10785]: Existing PID file found during start.
Oct 30 17:26:31 java2016 startup.sh[10785]: Removing/clearing stale PID file.
Oct 30 17:26:31 java2016 systemd[1]: Started Apache Tomcat Web Application Container.
Oct 30 17:27:19 java2016 systemd[1]: Stopping Apache Tomcat Web Application Container...
Oct 30 17:27:19 java2016 systemd[1]: tomcat.service: main process exited, code=exited, status=143/n/a
Oct 30 17:27:19 java2016 systemd[1]: Stopped Apache Tomcat Web Application Container.
Oct 30 17:27:19 java2016 systemd[1]: Unit tomcat.service entered failed state.
Oct 30 17:27:19 java2016 systemd[1]: tomcat.service failed.

这表明kill运行得很好。而且/opt/tomcat/logs/catalina.out也没有显示出任何问题:

代码语言:javascript
复制
30-Oct-2016 17:27:19.268 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
30-Oct-2016 17:27:19.324 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
30-Oct-2016 17:27:19.375 INFO [Thread-5] org.apache.catalina.core.StandardService.stopInternal Stopping service Catalina
30-Oct-2016 17:27:19.491 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
30-Oct-2016 17:27:19.493 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
30-Oct-2016 17:27:19.494 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
30-Oct-2016 17:27:19.495 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]

为什么Systemd认为Tomcat是“失败的”?这和“陈旧的PID文件”消息有关吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-31 01:40:52

啊,不要紧;这已经是一般Java应用程序的answered already on serverfault了。

基本上,Java程序在响应SIGTERM而关闭时有时不会返回预期的退出状态。将以下内容添加到tomcat.service文件可解决此问题:

代码语言:javascript
复制
[Service]
SuccessExitStatus=143
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40331741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档