【问题标题】:Replace a running python script with os.execl用 os.execl 替换正在运行的 python 脚本
【发布时间】:2014-03-05 16:06:13
【问题描述】:

我可能看起来不够努力,但我正在尝试用另一个 python 脚本替换正在运行的 python 脚本。根据我所做的研究,使用 os.execl 函数可能是我正在寻找的。我对应该与函数一起使用的参数有点困惑。谁能帮我解释一下如何用另一个替换当前正在运行的python脚本。

【问题讨论】:

    标签: python os.execl


    【解决方案1】:

    exec*() 系列替换整个进程,保留进程号 (PID)。如果这是你想要的......

    Python 解释器中的一个示例。我用 echo 替换了解释器。 'args' 中的第一项成为 argv[0],它是在 ps 或 top 中看到的进程名称。

    >>> import os
    >>> args=['process_name', 'bla', 'ble']
    >>> os.execlp("/bin/echo", *args)
    bla ble
    /Users/epx $ 
    

    【讨论】:

    • 感谢您的帮助,但我还是有点困惑。如果我有一个名为 test.py 的脚本并且它位于 /home/pi 目录中,我将如何用 test.py 脚本替换当前正在运行的脚本?
    • 您将拥有 /home/pi/test.py 而不是 /bin/echo。该脚本必须具有执行权限和适当的 #!/usr/bin/env python 标头。 (确保它在尝试 execl() 之前在提示符下执行。)我猜如果您的当前目录是 /home/pi,./test.py 会起作用,或者如果 PATH 包含 /home/,则简单地 'test.py' 会起作用pi.
    • 非常感谢,我想现在对这个东西的工作原理有了一点了解!
    猜你喜欢
    • 1970-01-01
    • 2021-01-08
    • 2015-06-13
    • 1970-01-01
    • 2017-04-22
    • 2020-06-23
    • 2013-06-27
    • 1970-01-01
    • 2021-01-10
    相关资源
    最近更新 更多