ubantu 使用 screen 保持web服务持续服务
前言
在Linux 中部署好项目后 需要开启一个服务保持后端一直接收请求
但是窗口是一直开着的 一旦关闭窗口 服务也跟随着关闭,如果需要远程部署那就需要重启项目 那自己电脑上的窗户也需要一直开着 保持会话
远程部署
windows 提交代码到linux服务器
可使用 scp 命令 windows 开启cmd 管理窗口 直接可用
scp -r C:\Users\kefan\Desktop\test kefan@192.168.85.128:/var/www
解释:
C:\Users\kefan\Desktop\test ==>> 是指windows目录下的需要提交的目录 test 整个文件夹
kefan ==>> 是指linux 下的用户名 确保该用户有足够的权限
192.168.85.128 ==>> 是指 服务器地址
/var/www ==>> 服务器需要上传到的文件内
当前命令是把windows里的test整个文件夹 上传到 linux的 /var/www文件夹内 上传成功后 linux www里会多一个test文件夹 注意windows 使用反 \ 而linux 使用正 /
重启项目
tips: 如果只需要更换前端代码 那么不需要重启后端 直接替换前端的文件夹即可 nginx是热更新的 你更新后刷新页面即可 如果更换了后端代码就需要重启后端
我使用的是 putty 链接数据库 链接上后
需要一个库 screen ubantu安装 apt-get install screen
使用注意 最好使用root用户创建 这样不会被其他操作意外杀掉
使用 sudo su 进入根用户之后
screen -S openser # 创建一个名为openser的screen
screen -r openser # 启用openser
python3 manage.py runserver -h 192.168.85.128 -p 8080 --processes 10 # [执行后端程序代码]
执行后端程序后 可以按 ctrl A +D 退出当前screen 后端程序 或者 exit 执行之后直接关闭窗口 退出都不会停止后端程序的执行
注意 下一次部署时 需要先进入根用户 再输入 screen -ls 查看openser的进程pid 之后使用 kill PID 关闭这个screen 再重新执行 因为 你之前运行占用了 8080 端口 需要先释放端口
常用screen 命令
screen -S openser // 开启一个名为openser 的screen
screen -ls // 查看所有会话 查看pid 杀进程用
screen -S old_name -X sessionname new_name // 给screen 改名字 old_name 改为 new_name