如何创建/调用/关闭独立的python进程

时间:2015-04-07 19:26:39

标签: python linux sockets subprocess fork

我是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

1 个答案:

答案 0 :(得分:0)

您的问题已经包含答案:创建一个侦听命令的守护程序,您可以使用套接字访问它。

在许多情况下,您的服务不需要自己守护(使用python-daemon package),您用于部署的主管程序会改为执行(例如supervisordcircus

Eve之类的框架可以很容易地在Python中创建Web可访问的api(您可以使用curl从shell中使用它。)