subprocess.Popen()
def run():
str_shell='ipconfig'
sub=subprocess.Popen(args=str_shell,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE,
stderr=subprocess.PIPE,universal_newlines=True)
try:
out,err=sub.communicate(timeout=15)
except TimeoutExpired:
sub.kill()
out, err = sub.communicate()
#res=sub.stdout.readlines() if sub.returncode == 0:
if out:
#log.info("执行输出正常")
log.info(out)
return out
if err:
#log.error("出现异常")
log.error(err,exc_info=True)
else:
if sub.returncode == 1:
log.error("执行shell对象结果有空")
else:
raise subprocess.CalledProcessError(sub.returncode, str_shell)
[root@hostuser src]# python3 subprocess_popen.py
[INFO]2019-05-18 23:39:07 Sat --app-- subprocess_popen.py:
<class 'str'>
[INFO]2019-05-18 23:39:07 Sat --app-- subprocess_popen.py:
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 27627 8627 19000 32% /
devtmpfs 894 0 894 0% /dev
tmpfs 910 1 910 1% /dev/shm
tmpfs 910 11 900 2% /run
tmpfs 910 0 910 0% /sys/fs/cgroup
/dev/sda1 1014 232 783 23% /boot
tmpfs 182 1 182 1% /run/user/42
tmpfs 182 0 182 0% /run/user/0
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 6481/node_exporter
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 7057/unicorn master
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 6505/ruby
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 9232/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7211/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 7212/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7459/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 52237/sshd: root@pt
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 57561/sshd: root@pt
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 6479/nginx: master
tcp 0 0 0.0.0.0:8989 0.0.0.0:* LISTEN 6479/nginx: master
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 6485/redis_exporter
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 6472/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 6494/postgres_expor
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 ::1:9168 :::* LISTEN 6505/ruby
tcp6 0 0 :::22 :::* LISTEN 7211/sshd
tcp6 0 0 :::23 :::* LISTEN 35527/xinetd
tcp6 0 0 ::1:631 :::* LISTEN 7212/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 7459/master
tcp6 0 0 ::1:6010 :::* LISTEN 52237/sshd: root@pt
tcp6 0 0 ::1:6011 :::* LISTEN 57561/sshd: root@pt
NoneType: None
[root@hostuser src]#
subprocess.Popen()的更多相关文章
- Python subprocess.Popen communicate() 和wait()使用上的区别
之所以会纠结到这个问题上是因为发现在调用Popen的wait方法之后程序一直没有返回.google发现wait是有可能产生死锁的.为了把这个问题彻底弄清楚,搜索一些资料过来看看: 原文链接:http: ...
- python subprocess.Popen 非阻塞
1.非阻塞设置subprocess.Popen(args, stdout=subprocess.PIPE,stderr=subprocess.PIPE) def non_block_read(outp ...
- python中subprocess.Popen.poll
import subprocess proc = subprocess.Popen(['python', 'test.py'], stdout=subprocess.PIPE) while 1: pr ...
- Python subprocess Popen
目的:顺序执行进程 在Bash里面类似 a.sh && b.sh && c.sh 先来说下Popen这个函数 class subprocess.Popen(args ...
- python中的subprocess.Popen()使用
python中的subprocess.Popen()使用 从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回 ...
- python subprocess.Popen 控制台输出 实时监控百度网ping值
import subprocess file_out = subprocess.Popen('ping www.baidu.com', shell=True, stdout=subprocess.PI ...
- Python调用subprocess.Popen卡死的解决方案
转载自:https://www.cnblogs.com/keke-xiaoxiami/p/7875009.html 在Python中,调用:subprocess.Popen(cmd, stdout = ...
- subprocess.Popen指令包含中文导致乱码问题解决
其实解决起来非常简单,如果了解到Windows中文系统编码为GB2312的话 只需将你包含中文的指令字符串编码为GB2312即可 cmd = u'cd 我的文档' cmd.encode('gb2312 ...
- python - 远程主机执行命令练习(socket UDP + subprocess.Popen()) 练习1
环境是windows 环境. server端: import socket import subprocess ss = socket.socket(socket.AF_INET,socket.SOC ...
- subprocess.Popen模块
该类用于在一个新的进程中执行一个子程序.subprocess模块底层的进程创建和管理是由Popen类来处理的. 1.subprocess.Popen的构造函数 class subprocess.Pop ...
随机推荐
- xshell 链接虚拟机
1.在虚拟机上添加网络适配器,选择仅主机模式 2. 2.启用本机的网络连接 3.在虚拟机上开启ssh服务 首先看下22端口有没开放,如果没有的话需要开启 service start sshd 4.在虚 ...
- 路飞-自定义User表和Media配置
user模块User表 创建user模块 """ 前提:在 luffy 虚拟环境下 1.终端从项目根目录进入apps目录 >: cd luffyapi & ...
- 主席树板子 p2104
#include<cstdio> #include<algorithm> #include<vector> using namespace std; ; int n ...
- 其他 - 02. poolmon 安装
1. 概述 遇到 win10 的内存泄露 32G 内存都能给吃光 2. 思路 rammap 对整体内存做一个诊断 主要是内存分配 用途 状态 poolmon 确认内存的用途 比 rammap 更精确 ...
- 多表连接面试题:ERROR:Not unique table/alias
class_info id class_name 2 s204 5 s205 1 s207 7 s203 match_info id host_id guest_id match_time mat ...
- MySQL 整型
MySQL中我们建表的时候,类型可以用bigint(20), 这是什么意思呢? 首先我们看bigint, MySQL的整型类型有这样几种: 类型 占用字节 tinyint 1 ...
- oracle备份报“EXP-00056: 遇到 ORACLE 错误 12541”
今天准备接手一个新项目,首先是dang项目和备份数据库到本地,但是在备份数据库的时候报错误: EXP-00056: 遇到 ORACLE 错误 12541 ORA-12541: TNS: 无监听程序 E ...
- 去除移动端苹果手机(ios)的input默认样式与input禁止键盘出现的方式
样式: input{-webkit-appearance: none;} 在iPhone plus点击input框出生日期时会出现如下图: 为了去掉下面那条苹果自带的,可以这样处理:在HTML中的in ...
- word中如何删除一张空白表格
百度知道:https://baijiahao.baidu.com/s?id=1631677477148377412&wfr=spider&for=pc 当word中出现如下一张空白表格 ...
- Node.js Learning Notes
简介 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务 ...