Xshell断开连接后仍保持服务器程序执行的方法(nohup,tmux)

一、tmux
tmux比nohup方便,建议使用tmux。

先安装tmux:sudo apt-get install tmux

然后用命令:tmux new -s session_name 新开一个会话

在会话里启动进程后,回到原本界面的方法: 先按下ctrl+b,然后再单独按d

此时会话里的进程仍然在运行

重新回到会话里查看进程的方法:tmux a -t session_name

查看会话中历史记录:先按ctrl+b,然后按Page Up ,Page Down

可以同时新建多个会话s1,s2,s3

在会话间切换的命令: 先按ctrl+b ,再按s,然后就可以在会话间选择其中一个,按enter进入。

列出会话:tmux ls

即使关闭xhsell,会话也仍然存在,如果里面有进程,会持续运行。

除非进入会话中把进程关闭掉。

关闭会话的方法: tmux kill -session -t session_name

二、nohup
(参考https://blog.csdn.net/limiaoiao/article/details/81948401,实现Xshell断开连接情况下Linux命令继续执行)

1、将原命令语句改为:nohup 命令语句 &

2、回车执行,再回车,窗口中会显示一个进程号

3、如果中途想关闭,可执行:kill -9 进程号。如果想查看命令执行情况,可执行:cat nohup.out

效果如下:

程序的对应进程已经在后台运行,且运行输出都记录在文件nohup.out中,我们随时可以用语句cat nohup.out查看进程运行情况:

关闭xshell,再打开,用语句watch -n 1 nvidia-smi 查看显卡使用情况:

可见我们的进程31764仍在运行。

注意nohup.out文件保存在项目文件目录下,因此重新连接后要重新回到项目目录下才能用cat nohup.out 查看程序运行情况。

补充:查看打开的端口:lsof -i
具体:lsof -i:8888

————————————————
版权声明:本文为CSDN博主「千里驰援李天霞」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41519463/java/article/details/89963166

你可能感兴趣的:(Xshell断开连接后仍保持服务器程序执行的方法(nohup,tmux))