本人在编写监控系统进程状态的脚本的时候,因为要涉及到调用系统命令查看linux系统进程pid以及时间等,所以使用到了os.popen().read()来获取返回值
然而调用命令发现无法获取到任何返回值,而直接在shell中执行实际上是存在进程的
原因是os.popen()中命令前需要加上sudo
还有一点需要注意,read()后的返回值,一般带有\n,容易出现类型错误,需要split('\n')[0]获取原始值,如果是数字直接转类型即可
同时遇到的问题:如果os.popen()作为if中的条件判断是否存在进程,未加read(),会出现error writing standard output (Broken pipe) here is my code 的警告,具体原因尚未得知,stackoverflow上也还没有人回答这个问题,如果有人知道原因,还请留言解释,谢谢