BBy*_*BBy 1 linux ubuntu flask python-2.7
我正在 Raspberry Pi(python 2.7)中设置 Flask 项目。当手动调用python脚本时,它运行完美。
但是,我试图在启动后自动运行脚本,它无法正常运行。
我尝试修改 /etc/profile 以在启动后运行脚本;
/etc/配置文件
# 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
Run Code Online (Sandbox Code Playgroud)
开始脚本.py
# 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
Run Code Online (Sandbox Code Playgroud)
我希望运行服务器没有任何问题,但启动后,它给了我以下错误,
socket.error: [Errno 98] Address already in use
Run Code Online (Sandbox Code Playgroud)
但是,这没有意义,因为这应该只发生一次。
我在这里错过了什么吗?
我建议为您的应用程序创建一个服务,它并不像您想象的那么痛苦。这将在网络启动后开始,因此您不需要增加延迟的中间脚本。如果您不想以 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
Run Code Online (Sandbox Code Playgroud)
然后你可以运行:
sudo systemctl start my_project
sudo systemctl status my_project
Run Code Online (Sandbox Code Playgroud)
如果不好,请调整并尝试:
sudo systemctl restart my_project
sudo systemctl status my_project
Run Code Online (Sandbox Code Playgroud)
如果好:
sudo systemctl enable my_project
Run Code Online (Sandbox Code Playgroud)
重新启动您的 pi 并验证它是否一切正常。
还要仔细检查您与系统上运行的其他东西一起使用的任何端口。
| 归档时间: |
|
| 查看次数: |
2917 次 |
| 最近记录: |