python-3.x - 当我使用 Python 在容器内运行命令时,进程永远不会结束
问题描述
使用python脚本我通过docker容器内的命令运行logstash,正常行为(在服务器中安装了logstash)是管道获取数据后管道关闭,但该过程永远不会结束。
logstash=subprocess.call(["docker","exec", "-it", "logstash-docker_logstash_1", "/usr/share/logstash/bin/logstash","-f", "/usr/share/logstash/pipeline/site-canvas.conf","--path.data","/usr/share/logstash/config/min-data/"])
我使用 docker top 查看容器内正在运行的进程
我该怎么做才能确保在完成获取数据后流程结束?
这是我的管道
input {
jdbc {
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => "jdbc:sqlserver:/db-ip:1433;databasename=omi"
jdbc_user => "my-user"
jdbc_password => "my-pass"
statement => "SELECT
TIME_CREATED,DESCRIPTION as problem, SEVERITY as severity_mame, NODEHINTS_DNSNAME as source,CATEGORY
FROM [omi1062event].[dbo].[ALL_EVENTS]
WHERE STATE = 'OPEN'
AND NODEHINTS_DNSNAME LIKE 'mju%'
AND TIME_CREATED >= DATEADD(day, -1, GETDATE())
ORDER BY TIME_CREATED ASC
"
jdbc_default_timezone => "UTC"
}
}
filter {
date {
match => [ "time_created", "ISO8601", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss.SSSSSS" ]
timezone => "Chile/Continental"
}
}
output {
elasticsearch {
hosts => "my-ip:9200"
index => "canvas"
user => "my-user"
password => "my-pass"
}
}
解决方案
推荐阅读
- javascript - ReactJS - 使我的自制幻灯片响应和图像间隙校对
- kendo-grid - 当在 kendo.grid 上创建列时,是否可以实例化对象?
- php - 有没有办法在电报机器人中发送带有消息的回调按钮?
- java - Maven 构建无法从本地存储库中的 JAR 中找到符号和包
- c# - 以编程方式训练和接受 QnA 中添加的问题
- python - 基于空字符串切片python列表
- visual-studio - 如何在 Visual Studio 2019 中配置代理?
- python - 为什么原始类型不使用“is”比较代替“==”?
- javascript - 如何在javascript中打印元素异步推送到它的数组?
- d3.js - getter mettod .attr() 是否会修改与元素关联的数据?