我是Python的新手 - 并在下面列出了几个,也许是微不足道的问题。我使用Python 3.4.3在Slackware Linux上工作。
我需要启动一个python程序A,这样可以通过UNIX shell或webbrowser定期调用它并将其输出定向到其中任何一个。我同时在下面提到了几个问题,因为在这个项目中我看起来都很相似(也可能在OS-X上运行,甚至可能在Windows上运行)。
1)我如何分叉/生成这个python进程A所以它变得独立于shell(python或终端)并保留在RAM内存中以跟踪命令直到被告知关闭它自己?通过使用subprocess.Popen进行新进程B?通过运行守护进程?
2)如何通过PID找到这个python进程A(或B)?通过使用psutils和PID锁或日志文件?
3)如何从Python shell或UNIX shell或webbrowser调用此进程A(或B)?通过使用socket.socket和PID?
4)如何将此过程A(或B)的输出定向到shell或webbrowser?写入文件似乎很简单。后者的MVC - 或者我们可以保持简单吗?KISS?
非常感谢提前,再见,pisti答案 0 :(得分:0)
您的问题已经包含答案:创建一个侦听命令的守护程序,您可以使用套接字访问它。
在许多情况下,您的服务不需要自己守护(使用python-daemon
package),您用于部署的主管程序会改为执行(例如supervisord
或circus
)
有Eve
之类的框架可以很容易地在Python中创建Web可访问的api(您可以使用curl
从shell中使用它。)