我用Python编写了一个带有Flask的服务器应用程序,现在我想让它在我设置的虚拟机上运行。因此,我非常希望在两个方面提供指导。
任何指导/帮助都是非常感谢的!我所做的网络搜索并没有给我指明正确的方向。我很抱歉,如果我的任何术语是错的(如果是的话,请随时纠正我,以便我学习!)谢谢!
发布于 2017-11-04 18:04:55
在Ubuntu,/etc/systemd/system
上使用systemd来进行简单的设置(不过,对于生产设置来说可能不太理想)。
有时候,我这样做是为了我正在制作原型的Python应用程序。首先,将应用程序代码放在/opt/my-app
中。我通常只是cd /opt
和git clone
在那里回购。然后,创建一个名为/etc/systemd/system/my-app.service
的文件。在该文件中,添加以下内容:
[Unit]
Description=My App daemon
After=network.target postgresql.service
Wants=postgresql.service
[Service]
EnvironmentFile=/etc/sysconfig/my-app
WorkingDirectory=/opt/my-app/ # <- this is where your app lives
User=root
Group=root
Type=simple
ExecStart=/usr/bin/python server.py # <- this starts your app
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
接下来,将所有环境变量粘贴到名为/etc/sysconfig/my-app
的文件中,如下所示:
DB_HOST=localhost
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=postgres
然后你就可以:
service my-app start
service my-app stop
service my-app restart
然后,您可以点击运行在服务器、IP和端口上的应用程序(就像运行python app.py
或python server.py
一样)。要检查守护进程的日志,如果它似乎不起作用,可以运行:
journalctl -u my-app -e
在生产中,我不确定这是最好的设置,也许最好研究一下像ngnix这样的东西。但我一直在为原型做这件事,而且很棒。
https://stackoverflow.com/questions/47111880
复制相似问题