gpt4 book ai didi

python - 如何检测python脚本是否作为后台进程运行

转载 作者:太空狗 更新时间:2023-10-29 18:32:44 25 4
gpt4 key购买 nike

有没有办法判断我的 python 脚本是否作为后台进程运行?我试图区分这两者:

sudo ./myscript.py
sudo ./myscript.py &

使用 sys.argv 不起作用 - 符号显然不算作参数。而以下的效果会是什么:

sudo python myscript.py
sudo python myscript.py &

我环顾四周,但一切似乎都是关于从 Python 脚本中启动后台进程,而不是 Python 脚本本身是否是后台进程。谢谢!

编辑: 目的是输出一条消息(或不输出), “按 Ctrl+C 停止此脚本” 如果正常启动,但如果作为后台进程启动则不显示消息。

EDIT 2 我忘了提到这个 python 脚本将由脚本启动/etc/init.d 而不是来自终端提示。所以标记为正确的答案确实按照我的措辞和给出的信息回答了问题,但我想我应该指出它在 init.d 场景中不起作用,以避免任何潜在的混淆。

最佳答案

基于 the answer for C @AaronDigulla 在评论中指出:

import os
import sys


def main():
if os.getpgrp() == os.tcgetpgrp(sys.stdout.fileno()):
print 'Running in foreground.'
else:
print 'Running in background.'


if __name__ == '__main__':
main()

关于python - 如何检测python脚本是否作为后台进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24861351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com