启动后自动运行flask应用程序无法正常工作

时间:2019-07-14 23:23:45

标签: linux python-2.7 ubuntu flask

我正在Raspberry Pi(python 2.7)中设置Flask项目。 手动调用python脚本时,它可以完美运行。

但是,我试图在启动后自动运行该脚本,但无法正常运行。

我试图修改/ etc / profile在启动后运行脚本;

/ etc / profile

# at the end of the profile
#TRIED sudo python /home/pi/project/script.py &
#TRIED sleep 10;sudo python /home/pi/project/script.py &

sudo python /home/pi/project/start_script.py &  # it also fails

start_script.py

import os
import time

time.sleep(10)
os.system('sudo python /home/pi/project/script.py &')

我希望运行服务器没有任何问题,但是启动后会出现以下错误,

socket.error: [Errno 98] Address already in use

但是,这没有意义,因为这应该只发生一次。

我在这里错过了什么吗?感谢您阅读我的帖子。

关于, BBy

1 个答案:

答案 0 :(得分:-1)

我建议为您的应用程序创建服务,这并不像您想的那样痛苦。这将在网络启动后开始,因此您不需要添加延迟的中间脚本。如果您不想以root用户(默认)的身份运行,或者想使用virtualenv,可以将其他参数添加到该文件中。

创建以下文件/etc/systemd/system/my_project.service:

[Unit]
Description=My Project
After=network.target

[Service]
WorkingDirectory=/home/pi/project/
ExecStart=/usr/bin/python /home/pi/project/script.py
Restart=always

[Install]
WantedBy=multi-user.target

然后您可以运行:

sudo systemctl start my_project    
sudo systemctl status my_project

如果不好,请调整并尝试:

sudo systemctl restart my_project
sudo systemctl status my_project

如果好:

sudo systemctl enable my_project

重新启动您的pi并验证其是否可以正常工作。

还要仔细检查您正在使用的任何端口以及系统上正在运行的其他端口。