阅读量:1
vscode远程ssh连接服务器,在服务器上跑时间较长深度学习代码,即使电脑关机,ssh断了,服务器那边代码程序也可以继续运行
在 SSH 中,当连接到远程服务器时,通常会在服务器上打开一个终端,允许在远程服务器上执行命令和操作,这个终端实际上是远程服务器上的一个虚拟终端,允许你与服务器进行交互,ssh断了这个终端也会关闭
服务器端安装tmux
vscode远程连接后,新建终端,该终端实在ssh远程连接会话下的,ssh断了这个终端下运行的进程都就没了
sudo apt-get install tmux
新建一个tmux终端
tmux new -s session_name //tmux new -s try_tmux
创建后会自动进入该tmux session下面
准备测试程序
每五秒把当前时间写入output.txt,用来一会测试tmux起作用没
#include <iostream> #include <fstream> #include <chrono> #include <ctime> #include <thread> int main() { // 打开文件 std::ofstream outputFile("output.txt", std::ios::app); // 循环每五秒写入当前时间 while (true) { // 获取当前时间 auto now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); std::string currentTime = std::ctime(&now); // 写入当前时间到文件 outputFile << currentTime; // 刷新缓冲区并等待五秒钟 outputFile.flush(); std::this_thread::sleep_for(std::chrono::seconds(5)); } // 关闭文件 outputFile.close(); return 0; }
在tmux终端下运行该程序
程序运行中,先按下ctrl+b,然后再单独按d,把这个终端和ssh会话分离,tmux终端自己玩
回到了ssh会话这个终端下下
列出创建的tmux进程
tmux list-sessions
若想回到刚才创建的会话
tmux a -t session_name
断掉远程连接,等一会,再连服务器,查看output.txt,显示持续打印时间即成功
可以创建多个tmux,来回切换
先按ctrl+b ,再按s,然后就可以在会话间选择其中一个,按enter进入。
记得手动删除会话
tmux kill-session -t session_name