运行 一个 Python 函数在后台

Run a Python function in the background

我想在 Python 中写一个小闹钟脚本 3. 我想用 Click 使它成为一个 CLI 工具,这样我就可以传递闹钟时间、开始命令和停止命令.我不需要这方面的帮助。

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

示例:

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

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

正如我所说,该功能有效,但是当它 运行s 时,我无法使用同一终端进行其他操作。我如何设法将此过程(检查是否达到 alarm.time)置于后台,以便我仍然能够使用同一终端处理其他内容?

我想成为 os-独立(它应该 运行 在 Windows、Linux 和 Mac 上)。

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

如果您想 运行 在后台执行任务,您可以创建一个进程来执行您想要的任务,然后让系统退出它。您可以通过以下方式做到这一点:

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")



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

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

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

然后您可以使用:

$ screen -ls
$ screen -r

分别查看您的会话和恢复闹钟会话。

这是 OS 独立的,只要您的 OS 安装了 Bash。