gpt4 book ai didi

python - 作为守护进程运行 web.py

转载 作者:太空狗 更新时间:2023-10-30 00:42:14 25 4
gpt4 key购买 nike

我有一个简单的 web.py 程序来加载数据。在服务器中我不想安装 apache 或任何网络服务器。

我试着把它作为后台服务 http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/

和子类化:(来自http://www.jejik.com/files/examples/daemon.py)

class Daemon:
def start(self):
"""
Start the daemon
"""
... PID CHECKS....

# Start the daemon
self.daemonize()
self.run()
#My code
class WebService(Daemon):
def run(self):
app.run()

if __name__ == "__main__":
if DEBUG:
app.run()
else:
service = WebService(os.path.join(DIR_ACTUAL,'ElAdministrador.pid'))
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
service.start()
elif 'stop' == sys.argv[1]:
service.stop()
elif 'restart' == sys.argv[1]:
service.restart()
else:
print "Unknown command"
sys.exit(2)
sys.exit(0)
else:
print "usage: %s start|stop|restart" % sys.argv[0]
sys.exit(2)

但是,web.py 软件没有加载(即:服务没有监听)

如果我直接调用它(即:不使用守护程序代码)工作正常。

最佳答案

终于找到问题了

Web.py 从命令行接受可选的端口号:

python code.py 80

并且脚本还从命令行获取输入:

python WebServer start

然后 web.py 尝试使用“start”作为端口号但失败了。我没有看到错误,因为它是在免费的。

我用一个小技巧解决了这个问题:

if __name__ == "__main__":
if DEBUG:
app.run()
else:
service = WebService(os.path.join(DIR_ACTUAL,'ElAdministrador.pid'))
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
sys.argv[1] = '8080'
service.start()

关于python - 作为守护进程运行 web.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1093485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com