Python 如何仅通过命令行在虚拟机中启动并运行服务器?
我用Flask用Python编写了一个服务器应用程序,现在我想让它在我设置的虚拟机上运行。因此,我非常希望在两个方面得到指导Python 如何仅通过命令行在虚拟机中启动并运行服务器?,python,linux,server,virtual-machine,Python,Linux,Server,Virtual Machine,我用Flask用Python编写了一个服务器应用程序,现在我想让它在我设置的虚拟机上运行。因此,我非常希望在两个方面得到指导 如何设置服务器,使其永久运行,并且其他计算机可以访问它?计算机可以在同一个网络中,所以我不必担心域名或其他问题。我只是在寻找多个设备能够访问它。我目前可以在本地机器上运行服务器,一切正常 我远程安装了虚拟linux机器,所以我使用SSH连接到它,并从命令行执行所有操作,但对于如何从命令行执行上述操作,我有点不知所措 非常感谢您的指导/帮助!我所做的网络搜索并没有为我指明正
非常感谢您的指导/帮助!我所做的网络搜索并没有为我指明正确的方向。如果我的术语有任何错误,我深表歉意(如果有,请随时更正,以便我学习!)。谢谢大家! 在Ubuntu上使用systemd,
/etc/systemd/system
,进行简单的设置(但对于生产设置可能并不理想)
我有时会为我正在原型化的Python Flask应用程序这样做。首先,将应用程序代码放入/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
然后你可以做:
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之类的东西。但我一直都在为原型做这项工作,这非常棒。谢谢你,迈克!快速跟进问题。如果我有另一个应用程序在AWS Lambda上运行,有没有办法将其与我刚刚安装的运行服务器连接起来?例如,如果我想从AWS Lambda调用一些方法,或者在我的Flask文件中创建一个数据库,这可行吗?
journalctl -u my-app -e