【问题标题】:Sub-process in Python execute two task? [closed]Python中的子进程执行两个任务? [关闭]
【发布时间】: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'])

标签: python linux python-2.7 terminal subprocess


【解决方案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'])

这更容易执行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    相关资源
    最近更新 更多