启动 virtualenv 脚本 rc local
Starting virtualenv script rc local
我是这个领域的新手,希望有人能帮助我。
所以我有一个后端项目,我需要在计算机开机时自动启动(我真的不在乎如何使用 systemd 或 rc.local,我的老板告诉我 rc.local,但我想两者都行)。我只需要启动一个 docker 容器,然后启动我的 virtualenv,然后 运行 项目。
到目前为止,我已经在 /etc/rc.local
试过了
docker start cassandratt #my docker container
sleep 20 #an ugly hack to give time for the container to start
cd /home/backend/
. venv/bin/activate
. /run.py
不行,但是docker容器启动了,所以我猜问题出在virtualenv或python,我真的不知道,因为我没有任何经验在这个领域。
知道如何完成它吗?
提前致谢
编辑:
按照 Samer 的指导,我尝试在激活 virtualenv 后创建一个文件夹并且它创建得很好,所以我认为问题是尝试执行 run.py,也许是加载 virtualenv 的 python?
docker start cassandratt #my docker container
cd /home/backend/
. venv/bin/activate
mkdir test #folder created fine
. /run.py
mkdir test2 #folder not created
因此,部分解决方案似乎设置了一些变量而不是直接访问它们。至少这对我有用。感谢 Sample 给了我们一个大提示:)
HOME=/home/backend #the project path
docker start container
. $HOME/venv/bin/activate #activates the virtualenv of the project
/usr/bin/env python $HOME/run.py & #runs the run.py through virtualenv's python #and runs it in the background
exit 0
我是这个领域的新手,希望有人能帮助我。
所以我有一个后端项目,我需要在计算机开机时自动启动(我真的不在乎如何使用 systemd 或 rc.local,我的老板告诉我 rc.local,但我想两者都行)。我只需要启动一个 docker 容器,然后启动我的 virtualenv,然后 运行 项目。
到目前为止,我已经在 /etc/rc.local
docker start cassandratt #my docker container
sleep 20 #an ugly hack to give time for the container to start
cd /home/backend/
. venv/bin/activate
. /run.py
不行,但是docker容器启动了,所以我猜问题出在virtualenv或python,我真的不知道,因为我没有任何经验在这个领域。
知道如何完成它吗?
提前致谢
编辑:
按照 Samer 的指导,我尝试在激活 virtualenv 后创建一个文件夹并且它创建得很好,所以我认为问题是尝试执行 run.py,也许是加载 virtualenv 的 python?
docker start cassandratt #my docker container
cd /home/backend/
. venv/bin/activate
mkdir test #folder created fine
. /run.py
mkdir test2 #folder not created
因此,部分解决方案似乎设置了一些变量而不是直接访问它们。至少这对我有用。感谢 Sample 给了我们一个大提示:)
HOME=/home/backend #the project path
docker start container
. $HOME/venv/bin/activate #activates the virtualenv of the project
/usr/bin/env python $HOME/run.py & #runs the run.py through virtualenv's python #and runs it in the background
exit 0