Python中的子进程执行两个任务? [关闭]

Posted

技术标签:

【中文标题】Python中的子进程执行两个任务? [关闭]【英文标题】:Sub-process in Python execute two task? [closed] 【发布时间】:2015-12-20 14:56:23 【问题描述】:

我面临一些 python 编码问题,但我还无法解决。我正在尝试编写一个 python 脚本,它应该执行两个任务:打开一个新的 xterm 终端,然后使用一些 nmap 参数在 xterm 中执行 nmap。 第一个任务并不难,只需使用简单的程序即可:

import os
subprocess.call(['xterm &'],shell=True)

但是第二个任务,我不知道怎么写。你们能帮我写这个脚本吗?

【问题讨论】:

第二个任务是做什么的?你也不能subprocess.call()吗? 在执行终端xterm中运行nmap脚本...... 您可以使用xterm-e 参数将您的第二个命令与您的xterm 调用放在同一行。 linux.die.net/man/1/xterm "-e program [ arguments ... ] 此选项指定要在 xterm 窗口中运行的程序(及其命令行参数)。" 不,它不起作用...让我清楚我正在尝试做什么,,,在子进程中打开 xterm 并在 xterm 中使用他的参数和 python 脚本执行 nmap ...我希望它很清楚如果不是请重播....并且您有解决方案请编写脚本 无关:这里不需要shell,用Popen()代替call():subprocess.Popen(['xterm', '-e', 'sudo nmap -v -sS -O 10.2.2.2']) 【参考方案1】:

要在新的xterm 窗口中运行nmap,您可以使用-e 选项:

#!/usr/bin/env python
import subprocess

subprocess.Popen(['xterm', '-e', 'bash -c "sudo nmap -v -sS -O 10.2.2.2; read"'])

read 被附加在nmap 退出后等待Enter,然后关闭窗口。

【讨论】:

感谢 J.F. Sebastian...重播。我已经解决了我的问题...再次感谢。【参考方案2】:
import subprocess
subprocess.Popen(['xterm', '-hold', '-e', 'nmap -sV 74.125.130.100'])

这更容易执行

【讨论】:

以上是关于Python中的子进程执行两个任务? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python中的子进程是啥? [关闭]

shell多进程实例

子进程子回溯

正确关闭 Python 中的子进程 [重复]

使用supervisor进行进程管理

python多进程和多线程