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中的子进程执行两个任务? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章