在后台运行Python函数

2024-05-20 05:46:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python 3编写一个小的闹钟脚本。我想让它成为一个Click的CLI工具,这样我就可以传递一个报警时间、一个start命令和一个stop命令。这件事本身我不需要帮助

我遇到的问题是,当我运行脚本/命令时,终端不能用于其他命令。所以我想在后台运行这个程序(或者另一个线程?)

例如:

CLI-command 1: define alarm '12:00:00'
CLI-command 2: start alarm

在我设置了报警时间(使用define alarm)并启动启动功能(不断检查是否达到报警时间)之后,我想在同一个终端上做其他事情。12:00:00时,报警器应发出声音

正如我所说,这个函数可以工作,但在它运行时,我不能将同一个终端用于其他事情。我如何将这个过程(检查是否达到alarm.time)放到后台,以便我仍然能够使用相同的终端处理其他内容

我想独立于操作系统(它应该在Windows、Linux和Mac上运行)

有什么建议可以阅读或研究吗


Tags: 工具命令脚本终端报警cli时间事情
2条回答

如果希望在不增加代码本身复杂性的情况下实现这一点,可以使用screen command运行,如下所示:

$ screen -d -m -S alarmclock python your_alarm_clock_script.py

'-d-m'将启动分离的会话。'-S'允许您命名该会话

然后,您可以使用:

$ screen -ls
$ screen -r

分别查看会话和恢复alarmclock会话

只要您的操作系统安装了Bash,这是独立于操作系统的

如果要在后台运行任务,可以创建一个进程来执行所需的任务,然后让系统退出该进程。您可以通过以下方式完成此操作:

import os
import sys
pid = os.fork()
if pid == 0:
        print("Running task")
        sys.exit()
        sleep(10000)
        print("Task ended")
else:
        print("Running another task")



相关问题 更多 >