Python 在后台生成进程
我有一个RabbitMQ消息队列,我在队列中添加了Python 在后台生成进程,python,python-3.x,subprocess,nohup,Python,Python 3.x,Subprocess,Nohup,我有一个RabbitMQ消息队列,我在队列中添加了configuration.json。每个配置都具有启动工作流所需的所有信息。因此,如果队列中有5消息,我需要通过启动工作流的消费者提供配置5命令 如果退出生成这些流程的python脚本,那么也将退出实际的工作流流程。这就是问题所在 目前: subprocess.run(f'nextflow run nextflow/workflow_runner.nf-w“gs://nextflow text bucket/work”-c nextflow/n
configuration.json
。每个配置都具有启动工作流所需的所有信息。因此,如果队列中有5消息,我需要通过启动工作流的消费者提供配置5命令
如果退出生成这些流程的python脚本,那么也将退出实际的工作流流程。这就是问题所在
目前:
subprocess.run(f'nextflow run nextflow/workflow_runner.nf-w“gs://nextflow text bucket/work”-c nextflow/nextflow.config--at_config{config_file}--csv{csv_dest}&',shell=True)
在这里,我只需在命令末尾添加一个&
符号,以便它在后台运行。如何更改此代码,以便我的python脚本创建一个与此使用者断开连接的新进程
基本上,我如何使用python脚本有效地创建n个进程,这些进程不依赖于启动它们的脚本。我能够登录到机器并连接到进程的每个的输出
这是输出的样子:
N E X T F L O W ~ version 20.01.0
Launching `nextflow/workflow_runner.nf` [pedantic_pauling] - revision: a8fe3d5045
executor > google-lifesciences (1)
[92/828e5d] process > prc1 [ 0%] 0 of 1
[- ] process > prc2 -
[- ] process > prc3 -
[- ] process > prc4 -
[- ] process > prc5 -
并在每个过程完成时更新。因此,能够在bg中启动此功能,但能够“连接”到它并检查它到达的位置。基本上与没有Sadap相同的问题。这并不能回答我的问题。只有当python脚本仍在运行时,Popen才能工作。我在寻找一种比使用
Popen
和nohup
在末尾加上&
更健壮的方法。基本上这个问题与没有Sadap是一样的。这并不能回答我的问题。只有当python脚本仍在运行时,Popen才能工作。我正在寻找一种比使用Popen
和nohup
更健壮的方法,并在最后加上&
。