背景
在查看systemd服务退出时,经常看到Main process exited, code=exited, status=143/n/a和Failed with result 'exit-code',以为是出错,其实不是
原因
我写的java程序,一般都是web应用,没有主动退出的操作(system.exit(0)),所以都是被systemd关掉,或者kill。那么通常系统执行的就是kill -15 $PID,按照POSIX规范,状态码就是 128 + 15 = 143。但是,systemd默认认为退出码非0就是异常,所以就出现了上面提到的提示。
优化方法
告诉systemd我这个程序退出状态码就是143,它就不会提示了。在.service配置中增加
[Service] SuccessExitStatus=143