在服务器上部署Django项目并使其在后台一直运行
1. 在服务器中打开到 manage.py 所在的目录,输入命令:
1 | python3 manage.py runserver 0.0.0.0:8000 |
2. 后台运行
如果想要Django项目一直运行,关闭终端后还在运行,即需要运行如下命令,
1 | nohup python3 manage.py runserver 0.0.0.0:8000 & |
Linux之后台执行命令:nohup和&的使用
nohup 是 no hungup的缩写,以为“不挂断”,我们在使用Xshell等工具执行Linux脚本时,有时候会由于网络问题,导致失去连接,终端断开,程序运行一半就意外结束了。这种时候,就可以用nohup指令来运行指令,使程序可以忽略挂起信号继续运行。
语法:
nohup Command [ Arg ... ] [ & ]
nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
nohup和&的区别
&:是指在后台运行,当用户退出(挂起)的时候,命令自动跟着结束
nohup:不挂断的运行,注意并没有后台运行的功能,就是指用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
因此将nohup和&结合使用,就可以实现使命令永久地在后台执行的功能
要实现守护进程,一种方法是按守护进程的规则去编程;另一种方法是仍然用普通方法编程,然后用nohup命令启动程序:
nohup <程序名> &
3.写个后台运行的例子,可以每次都会创新日志log
在manage.py 同路径下创建一个run.sh
vim run.sh
增加下面内容
# python3 django run
#echo "rm nohup.out "
#rm -rf nohup.out
echo "start env"
source ./env/bin/activate
echo "--start--"
echo "ip: 0.0.0.0:8020"
#nohup python manage.py runserver 0.0.0.0:8020 &
nohup python manage.py runserver 0.0.0.0:8020 > "./log/$(date +"%Y%m%d-%H_%M_%S")_log.out" 2>&1 &
使用./run.sh
就可以启动了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通