http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic.html#INISCRPTACT
根据此systemctl状态,有一个特殊的返回码列表,这些返回码返回有关您正在查询的服务的信息。
如果请求状态操作,则初始化脚本将返回以下退出状态代码。
0 program is running or service is OK 1 program is dead and /var/run pid file exists 2 program is dead and /var/lock lock file exists 3 program is not running 4 program or service status is unknown 5-99 reserved for future LSB use 100-149 reserved for distribution use 150-199 reserved for application use 200-254 reserved
很好,但是我为1并不代表systemctl status
本身失败(不是基础服务)感到震惊。
我正在编写一个查询正在启动的服务状态的脚本,因此我希望看到几次状态代码3次,然后看到0。但是我应该是什么状态代码期望什么时候“ systemctl status
命令是brazoke”?
我很想说5+是一个无法恢复的错误,我应该保释以等待服务启动,但这不是本文所说的。它只是提供通用保留。
如果有帮助,我正在使用Ubuntu 16.04和18.04。也许那个供应商有特定的代码?我不知道。
答案 0 :(得分:0)
恕我直言,退出状态在那里,因此脚本编写者(即您)可以获取status命令的输出,而不必解析输出。
例如:
$ check [command]; echo $?
[command] is running
0
$
比较:
$ check [command1]; echo $/
[command1] is not running
0
$
知道命令是否正在运行的唯一方法是为 not 解析输出。将状态设置为0或1将使脚本更容易读取输出。当然,如果“检查”命令不起作用,则必须返回更高的退出代码。