如何获取失败的systemd服务的退出代码?
service some_service status打印以下内容:
Active: failed (Result: exit-code)但那是什么exit-code?
这些出口代码是标准的,还是对不同的服务有不同的含义?
发布于 2020-05-26 10:38:01
systemctl status确实有你想要的东西:
$ systemctl status openproject-web-1.service
● openproject-web-1.service
Loaded: loaded (/etc/systemd/system/openproject-web-1.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2020-05-25 08:17:17 CEST; 1 day 4h ago
Process: 969 ExecStart=/usr/bin/openproject run web (code=exited, status=203/EXEC)
Main PID: 969 (code=exited, status=203/EXEC)你看,在Main PID:下面,你有(code=exited, status=203/EXEC)。那203是出口代码。
退出代码取决于特定的应用程序,但也有约定。0为成功退出,1-255为异常退出,256+超出范围.posix标准有几个特例。但是,您需要查看应用程序的文档,以了解更多的内容。
例如,grep(1)说:
如果选择了一行,则...the退出状态为0;如果没有选择行,则为1;如果发生错误,则为2。
正如下面JdePB所描述的,systemd可以将一些退出代码设置在200到242之间。在上面的示例中,我们有退出代码203,这意味着实际的执行失败了(可能没有找到文件,或者没有标记为可执行文件)。
https://unix.stackexchange.com/questions/589028
复制相似问题