我在群集上运行多个进程。 我使用screen命令分别启动每个进程。 它允许我断开与群集的连接,并在连接时查看我的进程。 逐个启动所有屏幕是一项痛苦的工作。 我想知道我们是否可以使用python脚本。 脚本打开新shell创建屏幕运行进程并断开连接。 在文本文件中写入有关所有已启动进程的信息,如进程ID启动命令等。
其次,我想停止进程,我想把pid放到文件中,然后运行一个命令来杀死所有提到的进程。
例如
smaple inut文件看起来像
process_name command
123 python batch_training.py
我想使用process_name中给出的名称启动屏幕,并且将在相应的框架中执行命令。
由于
答案 0 :(得分:1)
你能在python中给屏幕对象一个命令吗?
像:
from os import system
command = 'screen ' + '/dev/ttyUSB0 38400'
result = system(command)
result('ATZ')???
答案 1 :(得分:1)
如果要在不打开屏幕会话的情况下运行命令,则还应在屏幕上使用-dmS选项。因此,如果您想使用python来做到这一点,您的代码可能如下所示:
import subprocess
subprocess.call(["screen", "-dmS", "screen_name_1", "top"])
subprocess.call(["screen", "-dmS", "screen_name_2", "top"])
subprocess.call(["screen", "-r"])
答案 2 :(得分:0)
尝试使用" os.system()"使用标准Linux命令。 e.g:
os.system("screen nano")
答案 3 :(得分:0)
通常,在python中,您可以通过运行
来运行系统命令 from os import system
然后
system('whatever_shell_command')
因此,在您的情况下,您可以输入:
from os import system
system('screen')
不幸的是(这只是一种相关的)你不能一起运行多个命令,所以
system('shell_command ', argument)
无效。
所以如果你想这样做,你需要连接两个字符串:
full_command = 'shell_command ' + argument
system(full_command)`