【问题标题】:Exiting command from python script whilst continuing to run script从 python 脚本退出命令,同时继续运行脚本
【发布时间】:2017-10-31 18:29:28
【问题描述】:

我正在尝试使用 Kali Linux 和监控模式自动执行向网络发送 deAuth 数据包的过程。对于命令

airodump-ng <interface name>

在终端窗口中列出了不断更新的附近网络。要运行下一个命令(通常),用户需要使用Ctrl + CCtrl + Z 退出命令并运行下一个。

到目前为止,我已经能够使用subprocess.call()(以及必要时使用raw_input())从python脚本中运行所有必要的命令,但是退出airodump-ng函数也会导致它退出脚本。

是否可以在不退出python脚本的情况下退出上一个命令的运行输出,即可以通过subprocess.call()使用的命令?如果是这样,怎么做?

【问题讨论】:

  • 你试过subprocess.kill()吗?
  • @moritzg 是的,没有运气。我使用time.sleep() 等待输出填充,然后使用dump.kill() 并且输出继续打印

标签: python linux command


【解决方案1】:

您可以使用nohup 命令使您的命令在后台运行,并在您停留在同一个终端时保持脚本在后台运行,但是,您无法访问该脚本的结果,但是您可以使用使用cat nohup.out查看脚本结果

您可以按照以下步骤进行

nohup python scriptname.py &

这将使您的脚本在后台运行,并将脚本的结果转储到您运行名为nohup.out的命令的同一文件夹中的文件中

然后检查脚本的执行结果 做

cat nohup.out 

查看脚本的所有结果 或

tail nohup.out 

检查脚本的最后 10 行。

这样做的好处是您将停留在相同的终端提示符下并且能够执行

airodump-ng <interface name>

注意,你也可以这样做

 airodump-ng <interface name> &

如果你想让它在后台运行

nohup airodump-ng <interface name> &

如果您希望将结果转储到 nohup.out 文件中,该文件将在当前工作文件夹中运行此命令后创建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 2017-07-17
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多