python中调用linux系统命令容易遇到的坑

本人在编写监控系统进程状态的脚本的时候,因为要涉及到调用系统命令查看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上也还没有人回答这个问题,如果有人知道原因,还请留言解释,谢谢

猜你喜欢

转载自blog.csdn.net/a1496785/article/details/80511099