如何在给定时间运行子进程python

Posted

技术标签:

【中文标题】如何在给定时间运行子进程python【英文标题】:how to run subprocess at a given time 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 运行子进程。 请帮帮我。

【问题讨论】:

与***.com/questions/15088037/…重复 虽然我的一部分同意@Benjamin,这是上述问题的重复,但我仍然认为上述方法有些独特,因为它是 Python 程序(子进程)的一部分将在特定时间运行。尽管相似,但并不完全相同。 请注意,给出的bash 命令不会延迟子进程的执行,只会延迟它的输出。要真正延迟执行,at 命令必须是管道中的第一个命令。不过,我想说在 Python 中有更好的方法。 【参考方案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 分钟后

以上是关于如何在给定时间运行子进程python的主要内容,如果未能解决你的问题,请参考以下文章

Linux下如何创建和监控子进程? [关闭]

如何在不使用子进程的情况下从 python 自动化脚本中运行 python 'sdist' 命令?

如何在 Python 中运行 Google Cloud Function 中的子进程

python子进程模块的动态输出

与 Python 并行运行子进程

保持子进程活着并继续给它命令? Python