小菜鸡_弱弱 2023-03-27 19:34 采纳率: 84.1%
浏览 13
已结题

python自动部署filebeat

公司一个自动部署的py脚本,执行完会自动部署filebeat。
问题:
subprocess.Popen返回为0说明该命令执行成功对吗。
为什么我手动执行这个脚本的时候返回为0,发现自动部署成功了
把这个脚本丢给程序自动执行返回也是0,但是却没部署成功
而且执行的用户和权限都是一样的,我真是懵了,有什么方法可以替代subprocess.Popen吗,我换种方式看看

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-27 23:58
    关注
    • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:python subprocess.Popen系列问题
    • 除此之外, 这篇博客: python subprocess调用外部进程中的 Popen方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • import subprocess, sys
      
      p1 = subprocess.Popen('ping 127.0.0.1'.split(),
                            stdin=subprocess.PIPE,
                            stdout=subprocess.PIPE,
                            stderr=subprocess.PIPE)
      # Popen构造一个新进程,启动其它程序,第一个参数由元组或列表提供,包括了命令和命令的参数。
      # stdin、stdout 输入输出的标准。
      
      # p1.wait()       # 如果此处没有调用wait()方法,那 下面的 print(11111)是在p1执行时,马上接着执行的。
      # print(11111)    # 如果调用了 wait()方法,则在p1结束后,再运行 print()。
      
      output, err = p1.communicate()       # communicate()控制输入输出,结果返回一个元组(stdout, stderr)。
      sys_encode = sys.stdout.encoding   # 获取操作系统的默认编码。
      print('p1', output.decode(sys_encode))    # 获取输出的内容,因为是字节码,所以得得重新解码。
      print('Exit code:', p1.returncode)      # p.returncode ==》p的退出状态码。
      
      p = subprocess.Popen('ping 126.com'.split())
      print(p.poll())  # poll 查看进程是否还在运行,如果还在运行返回None。如果正常结束返回0,错误中止通常为1。
      print(p.wait())  # 等待进程结束,可以传入一个timeout的参数=等待的时长。返回进程的结束状态码。和join类似。
      
      打开其他程序
      p = subprocess.Popen(['程序A', '文件B'])   # 即用 程序A 来打开 文件B。
      p = subprocess.Popen(['start', '文件B'], shell=True)    # 调用系统默认程序打开 文件B, start是windows的shell命令,其他系统有open,see。
      
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月20日
  • 已采纳回答 4月12日
  • 创建了问题 3月27日

悬赏问题

  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)