如何在我的代码中包装python守护进程

如何在我的代码中包装python守护进程,python,daemon,tornado,Python,Daemon,Tornado,我现在有一台使用Tornado的工作服务器,答案如下: 我想把它后台化。我已经一遍又一遍地阅读这个守护进程类示例,但我不知道它是如何包装我的服务器代码的。我是否只是将_umain__;中的所有代码都放在覆盖的运行中 如果它在另一个文件中,我如何对它进行子类化?确保它位于同一目录中,并且使用不带.py扩展名的文件名进行导入 我只是在寻找运行python web服务器脚本的最简单方法,只需一个简单的调用,例如./startserver.sh,如果我要使用bash脚本,并在后台运行它,而没有nohup

我现在有一台使用Tornado的工作服务器,答案如下:

我想把它后台化。我已经一遍又一遍地阅读这个守护进程类示例,但我不知道它是如何包装我的服务器代码的。我是否只是将_umain__;中的所有代码都放在覆盖的运行中

如果它在另一个文件中,我如何对它进行子类化?确保它位于同一目录中,并且使用不带.py扩展名的文件名进行导入

我只是在寻找运行python web服务器脚本的最简单方法,只需一个简单的调用,例如./startserver.sh,如果我要使用bash脚本,并在后台运行它,而没有nohup.out文件,并且所有stdout和stderr都重定向到日志文件。

尝试在Linux上使用supervisor守护程序包。它可以让您轻松地将事情后台化

对于Ubuntu:sudo-apt-get-install-supervisor

创建conf.d文件:

cd/etc/supervisor/conf.d/ vim pyhttpd.conf

在pyhttpd.conf中:

最后,使用新配置更新supervisor:

监管者更新

它应该为您启动,现在将在您启动时运行

以下命令也可用:

监督员停止pyhttpd

supervisorctl启动pyhttpd

supervisorctl重新启动pyhttpd

stdout和stderr被记录到/var/log/supervisor/目录。

尝试在Linux上使用supervisor守护程序包。它可以让您轻松地将事情后台化

对于Ubuntu:sudo-apt-get-install-supervisor

创建conf.d文件:

cd/etc/supervisor/conf.d/ vim pyhttpd.conf

在pyhttpd.conf中:

最后,使用新配置更新supervisor:

监管者更新

它应该为您启动,现在将在您启动时运行

以下命令也可用:

监督员停止pyhttpd

supervisorctl启动pyhttpd

supervisorctl重新启动pyhttpd


stdout和stderr被记录到/var/log/supervisor/目录中。

让我们保持简单。项目树:

$ tree
.
├── daemon.py
├── main.py
├── server.py
└──  __init__.py
daemon.py是来自的守护程序类,server.py是来自的代码的线程版本,_init__;。py是一个空文件,允许我们从目录中的其他文件导入代码。main.py是:

使用以下命令运行它:

$ python main.py start
对于更改后的第一个版本
如果uuu name uuuu='uuuu main uuuuu':定义myfun:并从守护程序子类的run方法调用它。

让我们保持简单。项目树:

$ tree
.
├── daemon.py
├── main.py
├── server.py
└──  __init__.py
daemon.py是来自的守护程序类,server.py是来自的代码的线程版本,_init__;。py是一个空文件,允许我们从目录中的其他文件导入代码。main.py是:

使用以下命令运行它:

$ python main.py start
对于更改后的第一个版本
如果要定义myfun:并从守护程序子类的run方法调用它,

我的python代码必须包含任何分叉代码等才能工作,还是可以是一个简单的python脚本,我更喜欢一些可移植的东西,这样我就可以把脚本带到任何地方运行,而不需要像这样的主要依赖项。我必须投票支持这个选项。Supervisor还添加了CTL和web界面,您可以使用该界面启动/停止服务、查看日志文件等。我的python代码是否必须包含任何分叉代码等才能正常工作,还是可以是一个简单的python脚本,我更喜欢一些可移植的东西,这样我就可以把脚本带到任何地方运行,而不需要像这样的主要依赖项。我必须投票支持这个选项。Supervisor还添加了CTL和web界面,您可以使用这些界面启动/停止服务、查看日志文件等。