python pexpect 启动、与子进程交互的例子--logstash

import pexpect,sys

child = pexpect.spawn(‘/home/cf/elk/Summoner/Elk/logstash/test/bin/logstash -f /home/cf/elk/Summoner/Elk/logstash/test/conf.d‘, timeout=60)

#index = child.expect([‘startup completely‘, pexpect.TIMEOUT])
while True:
    index = child.readline()
    sys.stdout.write(index)
    sys.stdout.flush()
    if index == ‘Logstash startup completed\r\n‘:
        break

n = child.send(‘hello\nworld‘)
output = ""
while True:
    index = child.readline()
    output += (index)
    if index == ‘}\r\n‘:
        break
sys.stdout.write(output)
sys.stdout.flush()

#child.kill(15)
#index = child.readline()
#print index

#child.kill(15)
#index = child.readline()
#print index

child.close(force=True)
print ‘closed‘

在logstash的配置文件中,设置从stdin输入,所以pexpect的readline会读到所输入的内容,就好像先回显了一下

但利用file input就没有此问题

时间: 2024-10-09 13:28:05

python pexpect 启动、与子进程交互的例子--logstash的相关文章

python之 启动一个子进程并等待其结束

#_*_coding:utf-8_*_ from multiprocessing import Process import os def aaa(name):     print "此刻运行的函数是由子进程运行,名字(%s), 子进程ID是(%s)" % (name, os.getpid()) if __name__ == "__main__":     print "父进程 (%s) 启动..." % (os.getpid())     p 

python pexpect 学习与探索

pexpect是python交互模块,有两种使用方法,一种是函数:run另外一种是spawn类 1.pexpect  module 安装 pexpect属于第三方的,所以需要安装, 目前的版本是 3.3 下载地址 https://pypi.python.org/pypi/pexpect/ 安装步骤: tar -xzvf pexpect-3.3.tar.gz cd pexpect-3.3 python setup install (require root) 但是 这个安装需要root权限,如果没

Spark(Python) 从内存中建立 RDD 的例子

Spark(Python) 从内存中建立 RDD 的例子: myData = ["Alice","Carlos","Frank","Barbara"]myRdd = sc.parallelize(myData)myRdd.take(2) ----In [52]: myData = ["Alice","Carlos","Frank","Barbara"

用ScriptEngine在java中和javascript交互的例子(JDK6新特性)

1. [代码][Java]代码     package demo7; import java.util.Arrays;import java.util.List; import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager; public class ScriptEngineTest {     public static void main(Stri

python核心编程中网络爬虫的例子

1 #!/usr/bin/env python 2 3 import cStringIO # 4 import formatter # 5 from htmllib import HTMLParser # We use various classes in these modules for parsing HTML. 6 import httplib # We only need an exception from this module 7 import os # This provides

python django 与数据库的交互

下载没有任何问题的mysqdb http://www.codegood.com/archives/4 1创建一个新的app. python manage.py startapp books 2 激活app的方法: 编辑 settings.py 文件, 找到 INSTALLED_APPS 设置. INSTALLED_APPS 告诉 Django 项目哪些 app 处于激活状 态.缺省情况下如下所示 INSTALLED_APPS = ( #'django.contrib.auth', #'djang

C# windows程序应用与JavaScript 程序交互实现例子

C# windows程序应用与JavaScript 程序交互实现例子 一.建立网页代码(包含js方法代码和访问外部windows应用事件) 这里需要注意js访问外部windows应用程序方法,需要代用windows对象的external 例子:window.external.CSharpfunction(xx,xx,xx); 1 <!DOCTYPE html> 2 3 <html lang="en" xmlns="http://www.w3.org/1999

学习 Python 第二课:用户交互程序

Author:uljfangbr/>E-mail:[email protected]Mentor:Liu YouyuanTime:2018-3-25 要求:1.用户输入相关信息2.打印出如下格式: ----------INFO: NAME ----------NAME:AGE:JOB:SALARY: #! usr/bin/env python #Author:uljfang #E-mail:[email protected] #Mentor:Liu Youyuan #Time:2018-3-25

python和redis之间的交互

python和redis之间的交互 一. redis模块 安装模块: pip3 install redis 连接方式: r = redis.Redis(host='localhost',port=6379) 连接池:为了节约资源,减少多次连接带来的消耗. pool=redis.ConnectionPool(host='localhost',port=6379,decode_responses=True) 二.redis操作 常规操作: import redis r = redis.Redis(h