使用Pycharm远程连接服务器进行开发(二)如何后台挂载代码运行
七崽爱吃小饼干2025/09/07阅读 7
当我们用pycharm通过ssh连接远程服务器运行项目时,如果pycharm被关闭或者网络中断导致SSH连接中断,终端就会被关闭,导致我们运行中的项目被中断。如果是一个长时间训练的项目,发生中断更是损失了许多时间与资源。所以本文旨在讲述,通过screen来挂载我们的项目,使我们可以中断SSH连接也不影响项目运行。
1.Screen简介
screen 通常指的是 GNU Screen,它是一个终端复用器,主要的功能如下:
- 会话管理:可以创建多个独立的终端会话,每个会话都可以运行不同的程序或命令。例如,你可以一个会话运行 Python 代码的训练脚本,另一个会话用来监控训练过程中的指标,或者在不同会话中运行不同的 Python 项目。
- 会话保持:即使你关闭本地终端或者网络连接中断,在 screen 中运行的程序依然会在服务器上继续运行。等你重新连接服务器后,还能恢复到之前的会话状态,继续操作。比如,长时间运行的 Python 数据处理脚本,不用担心网络波动导致脚本中断。
- 多窗口操作:在一个 screen 会话中,还能创建多个窗口,每个窗口可以执行不同的命令或运行不同的程序。这类似于在操作系统中打开多个终端窗口,方便同时进行多项任务,比如一个窗口查看 Python 代码,另一个窗口执行代码运行测试。
2.用Screen托管我们的进程
2.1 激活环境
首先,安装screen需要python环境,通过conda或者pip安装,所以我们先将环境切换到我们项目运行的conda环境
bash
conda activate [yours env]
2.2 安装screen
接着我们安装screen
bash
conda install screen
2.3 窗口创建与运行项目
在安装screen后,我们可以通过以下命令(注意是大写的S)创建窗口,创建窗口需要命名。
bash
screen -S [sreen name]
执行命令后,会自动弹出窗口,之后我们就可以在这个窗口上运行我们的项目。此时,就算我们断开ssh连接也不会影响我们的项目运行了。
2.5 窗口查询
那么,我们要如何找回我们的窗口呢,通过以下命令,就可以查看出正在运行的窗口。
bash
screen -ls
如下图,有两个
screen窗口正在运行,我之前创建了名为test的窗口,也就是第一个,我们复制其进程编号,也就是5465。

2.6 窗口运行
用我们之前查到的窗口进程编号,可以执行窗口运行命令:
bash
screen -r 5465
2.7 会话分离,挂载至后台运行
将该会话从pycharm的终端分离后才可以后台运行该会话
codeType
ctrl+a
然后按
d

如果你不确定自己的进程是否还在运行,可以用如下命令进行监控
bash
# 查看显卡基本信息和使用情况
nvidia-smi
# 实时监控(每秒刷新一次)
watch -n 1 nvidia-smi
2.8 会话关闭
如果想关闭会华,同样得到进程编号后运行如下命令,关闭进程即可:
bash
kill 5465
2.9 查看模式
linux在进入screen模式下之后,发现是无法在终端使用鼠标滚轮进行上下翻页拉动的,无法查看上面的终端输出内容了,按下面的顺序按键就可以滚动。
bash
ctrl + a
[
但是这样就相当于一张截图,没法看到新输出的内容,需要输入下面的按键退出该模式。
bash
ctrl + c