1 利用 Screen 保持 VSCode 连接远程任务持续运行
1.1 远程连接
在 Linux 上使用 screen
是一种保持进程持续运行的便捷方式,即使用户断开 SSH 连接,进程也不会中断。
-
连接远程服务器
首先使用 VSCode 或者 PyCharm 连接到远程服务器。
-
启动一个 screen 会话。
screen -S mysession
-S mysession:为这个会话命名为 mysession,方便后续管理
-
在
screen
会话中启动训练程序启动会话后,可以运行任何想要保持运行的程序,例如:
如 bash run_train.sh -
分离
screen
会话(保持进程运行)
按下以下组合键来分离screen
会话,但不会终止运行的程序:解释:
Ctrl + A, 然后按 D
Ctrl + A
:这是screen
的命令前缀。D
:表示分离(detach)。
这样即使VSCode 断开WiFi 连接也能保持训练进程。
-
查看当前所有
screen
会话
screen -ls
输出示例:这里的 7171 是会话 ID,mysession 是会话名
There is a screen on:7171. mysession (11/09/2024 08:39:43 PM) (Detached)
1 Socket in /run/screen/S-root.
- 恢复(重新连接)到 screen 会话
使用 screen -r <会话名或ID> 来终止会话。
#根据会话名
screen -r mysession
# 或根据会话 ID
screen -r 7171
如果只启动了一个 screen 会话,也可以直接使用:
screen -r
- 终止指定
screen
会话
使用screen -X -S <会话名或ID> quit
来终止会话。
# 根据会话名screen -X -S mysession quit# 或根据会话 IDscreen -X -S 7171 quit
- **使用
kill
命令杀掉会话进程kill ID**
# 杀掉进程
kill 7171
参考:
利用 Screen 保持 VSCode 连接远程任务持续运行_vscode screen-CSDN博客
1.2 查看 screen 历史输出
因为重新连接到 screen 会话不能直接使用鼠标或方向键查看历史输出,先利用 ctrl a [
进入copy mode。在copy mode下可以回滚、搜索、复制就像用使用 vi 一样。在copy mode下有这些快捷键:
C-b :Backward、PageUp
C-f :Forward、PageDown
H: High,将光标移至左上角
L:Low,将光标移至左下角
0:移到行首
$:行末
w:forward one word,以字为单位往前移
b:backward one word,以字为单位往后移
Space: 第一次按为标记区起点,第二次按为终点
按 esc 退出 copy mode。
2 使用 mlflow 平替 wandb
2.1 代码中使用
代码中编写相关记录操作。
2.2 可视化
因为是本地可视化,所以如果使用服务器的话则需要打开对应端口
sudo ufw allow 5001/tcp
再到项目的目录下使用以下命令:
mlflow ui --host 0.0.0.0 --port 5001