【问题标题】:python script exits when a shell command(to terminate a different tool) is run from os.system()当从 os.system() 运行 shell 命令(终止不同的工具)时,python 脚本退出
【发布时间】:2011-12-21 23:56:24
【问题描述】:

我正在使用我的 python 脚本中运行一个 shell 命令

os.system("一些shell命令")

这个命令本质上是终止一个工具。 我需要检查此工具是否已在我的脚本中终止。

但是一旦工具终止,脚本也会终止!

【问题讨论】:

  • 脚本是否是由同一个工具启动的?

标签: python shell operating-system


【解决方案1】:

脚本是否是由同一个工具启动的?如果是,则需要运行 os.setsid() 以停止依赖它。

【讨论】:

  • 是的,脚本很有可能是同一个工具启动的
  • 如果脚本需要与终端交互,这将是不幸的,因为setsid(2) 取消了进程与终端的关联。正在执行的 shell 命令也需要非常具体——0 表示“我的组中的所有进程”或-pid,其中 pid 是包含此进程 的进程组其他进程。
  • 不能使用 os.setsid(),它给出错误说 OSError: [Errno 1] Not owner
【解决方案2】:

您的脚本可能正确终止。尝试在最后一行代码之后添加以下行,以向您说明它已完成。

raw_input('Press any key to exit.')

【讨论】:

    猜你喜欢
    • 2012-01-06
    • 2017-10-31
    • 2010-12-11
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2016-01-02
    相关资源
    最近更新 更多