当我在python中使用os.system对服务器进行ping操作时,我会收到多个响应代码。
使用的命令-os.system("ping -q -c 30 -s SERVERANME")
答案 0 :(得分:3)
每the docs:
在Unix上,返回值是以
5.28.1
指定的格式编码的进程的退出状态。请注意,POSIX没有指定Cwait()
函数的返回值的含义,因此Python函数的返回值与系统有关。
等待子进程完成,并返回一个包含其pid和退出状态指示的元组:一个16位数字,其低字节是杀死该进程的信号号,而其高字节是退出状态(如果信号号为零);如果生成了核心文件,则设置低字节的高位。
所以0、256和512对应于system()
的正常退出状态(未被信号杀死),退出状态为ping
(0 == 0 << 8
的意思是“成功”),{{1} }(0
通常表示“正常”失败)和256 == 1 << 8
(不一致,但是1
通常用于指示参数解析失败)。在这种情况下,您通过了512 == 2 << 8
而未提供开关所需的必需值(2
),因此退出状态-s
才有意义。