gpt4 book ai didi

python - 守护 python 脚本需要什么?

转载 作者:行者123 更新时间:2023-11-28 18:57:13 24 4
gpt4 key购买 nike

我有一个 python 脚本需要在启动时作为守护进程运行。进程从 tty(和 pdb)分离,但代码不运行。

我已经将它缩小到一个最小的例子

import daemon
from time import sleep
f1 = open('out.txt','a')
with daemon.DaemonContext():
while(1):
f1.write('this is a test')
sleep(5)

我希望脚本继续运行并每 5 秒向 out.txt 添加一行,但脚本只是从 tty(或 pdb)分离并且 ps -ax 显示 python 解释器不再运行。 out.txt 已创建,但仍为空

最佳答案

您可能想要使用 process supervisor

为了简化流程并拥有一个不依赖于例如 systemd(仅限 Linux)的可移植解决方案,您可以安装例如 immortal ,在 FreeBSD 中只需要做:

pkg install immortal

然后创建一个 your-script.yml,内容如下:

cmd: sleep 3

并守护它:

$ immortal -c test.yml

要检查状态,您可以使用 immortalctl :

$ immortalctl    
PID Up Down Name CMD
29993 0.0s test sleep 3

如果想在重启时也一直启动,只需将脚本(在 FreeBSD 中)移动到 /usr/local/etc/immortal/your-script.yml,检查更多关于 immortaldir

您可以为示例添加更多选项:

cmd: iostat 3
log:
file: /tmp/iostat.log
age: 10 # seconds
num: 7 # int
size: 1 # MegaBytes
require_cmd: test -f /tmp/foo

更多示例请查看:https://immortal.run/post/run.yml/

关于python - 守护 python 脚本需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56899673/

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