首页 > 解决方案 > python:创建一个分离的进程并通过命令行与它通信

问题描述

我想创建一个命令行工具,它是一个带有一些我需要的自定义功能的倒数计时器。

我的想法是使用 python 脚本来启动一个在后台完成工作的进程(例如,在接近尾声时播放声音)。一旦计时器进程运行,我想通过命令行与它通信(发送查询,如“剩余”或“开始 XXmin”和“停止”等命令)。当然,定时器进程应该只有一个实例。

用法可能看起来像

>>> timer start 25min

>>> timer remaining
17:34 min remaining

>>> timer stop
timer stopped.

>>> timer start 90sec

在等待消息到达时,计时器进程需要做什么工作?反过来,接口脚本需要做什么来启动进程并在以后与它通信?使用单独的流程是实现目标的最佳方法吗?

我不知道该怎么做。我的想法听起来很简单,但我发现的几乎所有内容都与父脚本的子进程的并发性有关,这不是我想要的。

谢谢你。

标签: pythonasynchronous

解决方案


您在这里寻找的是基本的客户端-服务器架构。您将需要两个程序 - 一个在后台运行并监听消息(服务器),另一个将消息发送到服务器并处理响应(客户端)。

很多方法可以做到这一点,而且这个领域非常复杂,所以不要指望它会超级容易。刚开始时,我建议您尝试使用http.server使用标准库(http 服务器模块)的简单服务器。对于客户端,我建议使用requests library。HTTP 绝对不是本地客户端-服务器设置的最佳选择,但是使用现有的库,它将是迄今为止最容易启动和运行的,一旦您对此感到满意,您可以研究其他方法如果你想。


推荐阅读