与Python服务通信
问题:
我有一个用Python写的脚本,它作为一个服务在运行。这个脚本是win32类win32serviceutil.ServiceFramework的一个子类。我想要一种简单直接的方法,通过命令行向它发送任意命令。
我查过的内容:
看起来,服务启动后控制它的标准方法是使用另一个程序发送命令信号,但我需要能够发送一个简短的字符串和一个参数。使用命名管道(NamedPipe)似乎是个不错的主意,但这对我想做的事情来说太复杂了,有没有其他更简单的方法?
1 个回答
2
其实不是的。
在Python中,有很多种方法可以实现“进程间通信”(IPC)。
命名管道(Named Pipes)(可以参考 这个链接)——创建它需要一些操作系统的技巧,但之后它就像一个文件,你可以读写。
共享内存(Shared Memory)(可以参考 这个链接)——这也需要一些操作系统层面的技巧。
信号量和锁;带锁的文件也可以很好地用于进程间通信。
基于套接字的更高级的协议……
HTTP;这就是WSGI的核心内容。
FTP
等等。
一个常见的解决方案是使用HTTP,并定义“RESTful”命令。你的服务会在80端口监听HTTP请求,这些请求中包含参数和参数值。想了解更多信息,可以查看wsgiref。