如何在后台运行Flask服务器

15 浏览
0 Comments

如何在后台运行Flask服务器

我在我的Raspberry Pi上搭建了Flask,并且只用它作为一个服务器来传递我用Python脚本创建的xml文件数据给iPad应用程序(iRule)。

我的RPI是无头设备,我使用PuTTY、WinSCP和TightVNC Viewer来访问它。

我通过在终端窗口中运行以下命令来启动服务器:

sudo python app1c.py 

这样就设置好了服务器,我可以很好地访问我的xml文件。然而,当我关闭Windows机器和PuTTY会话时,Flask服务器就会关闭!

我该如何设置,以便即使在关闭Windows机器时,Flask服务器仍然继续运行?

我在Flask文档中读到:

虽然轻量且易于使用,但Flask内置的服务器不适合用于生产环境,因为它无法很好地扩展,并且默认只能同时处理一个请求。

然后他们继续给出了如何将Flask应用程序部署到WSGI服务器的示例!对于我处理的简单应用程序来说,这是必要的吗?

0
0 Comments

问题的原因:用户想要在后台运行Flask服务器,但是默认情况下服务器会在终端中运行,用户一旦注销终端,服务器就会停止运行。

解决方法:使用nohup命令和&符号可以让Flask服务器在后台持续运行。具体步骤如下:

1. 打开终端,并使用以下命令启动Flask服务器:

$ sudo nohup python app1c.py > log.txt 2>&1 &

这里的nohup命令可以让命令或脚本在你注销终端后继续在后台运行。"> log.txt"将输出重定向到log.txt文件中。"2>&1"将所有的错误输出定向到标准输出。最后的"&"符号可以让命令在当前终端的后台运行。

2. 如果想要停止后台运行的Flask服务器,可以参考以下问题/答案中的方法:

[如何在不使用Ctrl+C的情况下停止Flask应用程序?](https://stackoverflow.com/questions/15562446)

需要注意的是,这种方法只在计算机开机的情况下有效。如果重新启动计算机,需要再次运行相同的命令。

0
0 Comments

如何在后台运行Flask服务器

有时候我们希望在运行Flask服务器时将其放在后台运行,以便可以继续进行其他操作。下面提供了一种解决方法。

首先,我们需要安装一个名为forever的Node包,可以在https://www.npmjs.com/package/forever找到该包。

安装完成后,我们可以使用以下命令在后台运行脚本:

forever start -c python your_script.py

这样,your_script.py就会在后台以Python的方式运行。

当我们想要停止脚本时,可以使用以下命令:

forever stop your_script.py

这样,我们就可以方便地停止运行中的脚本了。

有人可能会觉得在一个Node包中运行Python代码有些奇怪。确实,大多数Node开发人员的思维方式是非常特殊的。哈哈,我同意这一点。

0
0 Comments

最近一直感到压力很大,所以我决定深入学习一下。使用PM2来处理这类问题。我还在同一台服务器上使用它来运行NodeJs应用程序和Python应用程序。

Flask是一个流行的Python Web框架,它可以帮助开发人员快速构建Web应用程序。在运行Flask应用程序时,通常我们会在终端中使用命令python app.py来启动服务器。然而,当我们关闭终端时,Flask服务器也会随之关闭。

这个问题的出现是因为在终端中运行Flask服务器时,它是作为前台进程运行的。当终端关闭时,前台进程也会被终止。但是,有时我们希望将Flask服务器作为后台进程运行,即使终端关闭,服务器仍然可以继续运行。

解决方法是使用PM2工具来管理Flask服务器进程。PM2是一个流行的进程管理工具,可以帮助我们在后台运行各种应用程序。

在上面的代码示例中,我们使用pm2 start app.py --interpreter python3命令来启动Flask服务器。这将使用Python 3解释器来运行app.py文件,并将服务器作为后台进程运行。

通过使用PM2,我们可以轻松地在后台运行Flask服务器,并且即使终端关闭,服务器仍然可以继续运行。这对于部署生产环境或在服务器上长时间运行的应用程序非常有用。

总结起来,通过使用PM2工具,我们可以将Flask服务器作为后台进程运行,以确保服务器在终端关闭时仍然可以继续运行。这提供了一种简单而有效的方法来管理和部署Flask应用程序。

0