我有一个命令行 python 应用程序,它是一项服务 - 即它等待连接并在被询问时执行某些操作,例如 webserver。有python-daemon
用于处理从终端分离、分叉等所有问题的库,但我想更进一步 - 让程序执行以下操作:
- 知道它是否已经在运行(通过检查 PID 文件)
- 当使用 'start' 选项调用它时,如果它没有运行,它应该启动守护进程,或者告诉现有的 PID 并在运行时退出。
- 当使用 'stop' 选项调用时,它应该杀死正在运行的实例(如果存在),并清理 PID 文件。
- 当使用 'restart' 选项调用时,它应该执行 'stop',然后 'start'
- 当使用 'status' 选项调用时,它应该显示正在运行的实例的 PID,如果它没有运行,则不显示任何内容。
如果这看起来像标准的 Unix 服务 - 这正是我想要的。是否有实现这种模式的 Python 库?