如何在Ubuntu机器上让您的Python Web应用始终运行
如何在Ubuntu机器上让您的Python Web应用始终运行
我有一个Web应用程序,我将其部署到一台安装了Ubuntu 20的机器上。
为了能够运行该应用程序,我需要打开Ubuntu机器的SSH,然后运行以下命令:
cd mywebapp python3 app.py
它成功运行,但一旦我关闭SSH控制台、重新启动机器或发生任何其他情况,它就会停止,我需要重复这些命令。
我尝试将其添加为在机器重新启动后运行的定时任务,但它不起作用。
我在以下链接中发布了一个问题:run python app after server restart does not work using crontab
没有任何方法适用于我,我必须确保这个Web应用程序始终运行,因为它需要工作来向移动设备发送推送通知。
请问是否有人能够提供一些建议?我已经搜索和尝试了很长时间了。
在Ubuntu机器上使你的Python网站应用程序始终运行的方法
如果你在一个bash脚本中调用Python脚本并将其作为守护进程运行,那会怎样呢:
你的bash脚本可以像下面这样(test.sh):
#!/bin/sh cd desired/directory python3 app.py
你可以使用nohup
这样运行bash脚本:
nohup ./test.sh 0<&- &>/dev/null &
如果你想要存储nohup的输出,可以参考这里。
问题出现的原因:需要在Ubuntu机器上运行Python网站应用程序时,希望它能始终保持运行状态。
解决方法:使用bash脚本调用Python脚本,并将其作为守护进程运行,可以使用nohup
命令来运行bash脚本,并将输出存储到指定位置。
问题的原因是希望在Ubuntu机器上始终运行Python Web应用程序,但是遇到了一些问题。下面是两种解决方法:
1- 使用systemd:
可以使用systemd来保持服务的运行。可以编写一个自定义单元用于应用程序,并将其配置为始终运行。可以参考以下教程:编写systemd单元
2- 使用Docker:
当应用程序被容器化时,可以配置它在失败或其他情况下重新启动。可以在这里了解更多信息。
我尝试了您提供的第一种方法,但是仍然遇到了问题。我在Stack Overflow上提出了一个问题,请您检查:stackoverflow.com/questions/75058536/…。您可以使用journalctl -u airnotifier.service
命令查看是否有有用的信息。