与Python服务通信

0 投票
1 回答
1380 浏览
提问于 2025-04-15 11:13

问题:

我有一个用Python写的脚本,它作为一个服务在运行。这个脚本是win32类win32serviceutil.ServiceFramework的一个子类。我想要一种简单直接的方法,通过命令行向它发送任意命令。

我查过的内容:

看起来,服务启动后控制它的标准方法是使用另一个程序发送命令信号,但我需要能够发送一个简短的字符串和一个参数。使用命名管道(NamedPipe)似乎是个不错的主意,但这对我想做的事情来说太复杂了,有没有其他更简单的方法?

1 个回答

2

其实不是的。

在Python中,有很多种方法可以实现“进程间通信”(IPC)。

  • 套接字(Sockets)

  • 命名管道(Named Pipes)(可以参考 这个链接)——创建它需要一些操作系统的技巧,但之后它就像一个文件,你可以读写。

  • 共享内存(Shared Memory)(可以参考 这个链接)——这也需要一些操作系统层面的技巧。

  • 信号量和锁;带锁的文件也可以很好地用于进程间通信。

  • 基于套接字的更高级的协议……

    • HTTP;这就是WSGI的核心内容。

    • FTP

    • 等等。

一个常见的解决方案是使用HTTP,并定义“RESTful”命令。你的服务会在80端口监听HTTP请求,这些请求中包含参数和参数值。想了解更多信息,可以查看wsgiref

撰写回答