小编ser*_*gei的帖子

停止服务时单元陷入故障状态(状态 = 143)

这是我的问题。我在其上运行 CentOS 和 java 进程。Java 进程由启动/停止脚本操作。它也创建了一个 java 实例的 .pid 文件。

我的单位文件看起来像:

[Unit]
After=syslog.target network.target
Description=Someservice

[Service]
User=xxxuser
Type=forking
WorkingDirectory=/srv/apps/someservice
ExecStart=/srv/apps/someservice/server.sh start
ExecStop=/srv/apps/someservice/server.sh stop
PIDFile=/srv/apps/someservice/application.pid
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

当我调用stop函数时,脚本终止 java 进程SIGTERM并返回 0 代码:

kill $OPT_FORCEKILL `cat $PID_FILE`
<...>
return 0
Run Code Online (Sandbox Code Playgroud)

之后,如果我检查我的单位的状态,我会得到类似的东西(状态 = 143):

? someservice.service - Someservice
   Loaded: loaded (/usr/lib/systemd/system/someservice.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2017-08-30 09:17:40 EEST; 4s ago
  Process: 48365 ExecStop=/srv/apps/someservice/server.sh stop (code=exited, status=0/SUCCESS)
 Main PID: 46115 (code=exited, status=143)

Aug …
Run Code Online (Sandbox Code Playgroud)

linux systemd systemctl

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

linux ×1

systemctl ×1

systemd ×1