python脚本中os.system的256和512的响应代码是什么

时间:2019-03-06 01:40:26

标签: python

当我在python中使用os.system对服务器进行ping操作时,我会收到多个响应代码。 使用的命令-os.system("ping -q -c 30 -s SERVERANME")

  • 0-在线
  • 256-离线
  • 512-512是什么意思?

1 个答案:

答案 0 :(得分:3)

the docs

  

在Unix上,返回值是以5.28.1指定的格式编码的进程的退出状态。请注意,POSIX没有指定C wait()函数的返回值的含义,因此Python函数的返回值与系统有关。

还有the wait docs say

  

等待子进程完成,并返回一个包含其pid和退出状态指示的元组:一个16位数字,其低字节是杀死该进程的信号号,而其高字节是退出状态(如果信号号为零);如果生成了核心文件,则设置低字节的高位。

所以0、256和512对应于system()的正常退出状态(未被信号杀死),退出状态为ping0 == 0 << 8的意思是“成功”),{{1} }(0通常表示“正常”失败)和256 == 1 << 8(不一致,但是1通常用于指示参数解析失败)。在这种情况下,您通过了512 == 2 << 8而未提供开关所需的必需值(2),因此退出状态-s才有意义。