通过Bash脚本启动Django服务器后窗口无法常驻的解决方法
Django服务器启动脚本窗口闪退问题解决
问题描述
通过以下bash脚本启动Django服务器时,双击脚本窗口会立即关闭,但直接在对应目录的cmd中输入python3 manage.py runserver 7888可正常运行。已尝试多种运行方式(.\startserver.sh、. startserver.sh、sh startserver.sh、start startserver.sh),结果一致。
脚本内容:
#!/bin/bash python3 manage.py runserver 7888
解决方法
方法1:修改脚本添加窗口常驻逻辑
在脚本末尾加入交互式命令,让脚本执行完成(或出错)后窗口保持打开,方便查看输出信息:
#!/bin/bash # 先切换到Django项目根目录(解决双击时工作目录不符的问题) cd "/你的Django项目绝对路径" python3 manage.py runserver 7888 # 等待用户输入后再关闭窗口 read -p "服务器已停止,按任意键退出..."
如果希望服务器运行期间窗口持续保持,即使服务器意外终止也不关闭,可将最后一行替换为exec bash,脚本结束后会进入新的bash会话。
方法2:通过终端手动启动脚本
先打开bash终端(如Git Bash、WSL终端),切换到脚本所在的Django项目目录,执行:
./startserver.sh
这种方式下终端不会自动关闭,能实时查看服务器日志输出。
方法3:排查脚本执行错误
双击闪退大概率是脚本执行时出错,但窗口关闭太快无法查看报错。可修改脚本将输出写入日志文件:
#!/bin/bash cd "/你的Django项目绝对路径" python3 manage.py runserver 7888 > server.log 2>&1 read -p "执行完成,查看server.log获取详情,按任意键退出..."
运行后查看同目录下的server.log文件,即可定位具体错误(如Python路径错误、项目目录不符等)。
内容的提问来源于stack exchange,提问作者OomBen
相关产品推荐
相关产品推荐

