【问题标题】:how to run subprocess at a given time python如何在给定时间运行子进程python
【发布时间】:2018-09-05 14:56:50
【问题描述】:

我尝试下面的代码来运行我的subprocess after 1 minute

 process =  Popen(['python3','helloworld.py','|','at -m now +1 minute'], stdout=PIPE, stderr=PIPE)

我从终端运行以上线路..它立即执行但不是在 1 分钟后。如何将特定时间设置为 RUN..
如何在给定时间 python 运行子进程。
请帮帮我。

【问题讨论】:

  • 虽然我的一部分同意@Benjamin,这是上述问题的重复,但我仍然认为上述方法有些独特,因为它是 Python 程序(子进程)的一部分将在特定时间运行。尽管相似,但并不完全相同。
  • 请注意,给出的bash 命令不会延迟子进程的执行,只会延迟它的输出。要真正延迟执行,at 命令必须是管道中的第一个命令。不过,我想说在 Python 中有更好的方法。

标签: python python-3.x subprocess popen


【解决方案1】:

您不能在命令中使用管道,除非您使用 Popen 设置 shell=True。

process =  Popen('"python3 helloworld.py" | at -m now +1 minute', stdout=PIPE, stderr=PIPE, shell=True)

【讨论】:

  • 当我打印 stderr 时,它显示为“命令将在 2018 年 3 月 27 日星期二 10:19:00 使用 /bin/sh\njob 26 执行(1 分钟后的时间)”但它仍然立即执行......
  • 遇到同样的问题...立即执行...不是在 1 分钟后
猜你喜欢
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 2021-05-09
  • 2012-10-08
  • 1970-01-01
  • 2017-05-17
相关资源
最近更新 更多