2016-12-05 158 views
0

我在同一个目录下有十个python脚本。如何从命令行运行所有这些,它将在后台工作?如何从命令行运行多个Python脚本?

我使用SSH终端连接到服务器的CentOS和运行Python脚本:

python index.py 

但是当我关闭客户端SSH,proccess是死于

+0

它们可以并行运行还是需要按顺序运行? (注意有很多方法可以完成这个任务..) – Aaron

+2

也许考虑'nohup'或'screen'? – JCVanHamme

回答

2

可以使用&命令来使事情在后台运行,并nohup所以它继续在注销,如

nohup python index.py & 

如果你想运行多个这个事情这样,它可能是最简单的只是做一个脚本来启动他们的所有(与您所选择的外壳):只要

#!/bin/bash 
nohup python index1.py & 
nohup python index2.py & 
... 
+0

需要我在Cent OS 7.2中安装'nohup'作为模块吗? – MisterPi

+0

这是一个POSIX命令,它应该已经在那里。 – Iluvatar

1

因为你一旦他们开始并不需要与脚本互动(和唐“T需要任何标准输出打印)这可以很容易地与其他的Python脚本中使用的子模块的自动化:

for script in listofscripts: 
    #use subprocess.run() for python 3.x (this blocks until each script terminates) 
    subprocess.call(["python", script], *args) #use popen if you want non - blocking 

*参数表是一个链接(它的颜色得到了由代码highliting

另外值得注意的覆盖:标准输出/标准错误打印是可能的,只是更多的工作..