您尚未登录。

楼主 #1 2020-03-31 15:08:14

pysir
会员
注册时间: 2020-03-17
已发帖子: 12
积分: 12

为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?
而且有时候网络不好, ssh被中断也会这样, 请问这是为什么, 有什么解决方案吗?不让后台的进程退出。

离线

#2 2020-03-31 15:19:15

metro
会员
注册时间: 2019-03-09
已发帖子: 445
积分: 489

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

楼主可以了解一下nohup命令

离线

#3 2020-03-31 15:33:05

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 463
积分: 330.5
个人网站

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

为了避免断线,可以考虑使用screen来执行命令。

先设置一下screen配置,在/etc/screenrc末尾添加如下内容。

```shell
caption always "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%H %Y-%m-%d %c %p"
```

这样screen的终端最下面有显示标签,方便辨认。

screen常用命令

screen -list
列出所有会话

screen -dmS name
新建一个会话,后面是会话名称

screen -d name
强制断开一个会话,用户于其它用户连接了某个会话,但他断网,要很长时间才能自动断开。

screen -r name
登入某个会话

在会话中,按住ctrl,依次再按a,d, 就可以安全离开这个会话,里面的命令继续执行。

离线

#4 2020-03-31 15:33:36

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 463
积分: 330.5
个人网站

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

apt install screen

离线

#5 2020-03-31 15:37:05

illusion
会员
注册时间: 2018-05-09
已发帖子: 81
积分: 368

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

screen好评,就是翻页不太舒服。

离线

楼主 #6 2020-03-31 15:45:18

pysir
会员
注册时间: 2020-03-17
已发帖子: 12
积分: 12

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

aozima 说:

apt install screen

感谢大佬推荐的 screen


metro 说:

楼主可以了解一下nohup命令

感谢大佬, 不但找到了 nohup, 还找到了 disown

https://unix.stackexchange.com/questions/4004/how-can-i-run-a-command-which-will-survive-terminal-close

离线

#7 2020-03-31 16:15:20

gddddd
会员
注册时间: 2020-03-27
已发帖子: 30
积分: 30

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

推荐使用tmux,个人感觉比screen好用一丢丢,安装apt install tmux,再连时使用tmux attach

离线

#8 2020-04-02 12:57:37

LinjieGuo
Moderator
注册时间: 2019-07-24
已发帖子: 583
积分: 587
个人网站

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

screen大法好
nohup+tail 也不错,简单粗暴,但是好像只能看。

离线

#9 2020-04-27 08:37:29

我思故我在
会员
注册时间: 2019-09-03
已发帖子: 244
积分: 243.5

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

强烈推荐 screen, 可以随时关闭终端, 也可以随时恢复会话。

离线

#10 2020-04-27 22:56:48

OggyJFX
会员
注册时间: 2019-05-21
已发帖子: 110
积分: 109.5

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

我怎么记得在我的印象中,screen这个东东,会严重影响终端的刷新速度?
如果用screen,里面跑一个vim,翻页的时候,那个速度。。。。

离线

#11 2020-10-15 22:41:52

哦豁哦豁
会员
注册时间: 2020-01-17
已发帖子: 79
积分: 79

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

metro 说:

楼主可以了解一下nohup命令

学到了, 好用, 感谢!

离线

#12 2022-07-13 10:00:24

uuid
会员
注册时间: 2020-12-08
已发帖子: 45
积分: 31

Re: 为什么我ssh连接远程服务器, 用&运行一个后台命令,由于我主动退出了ssh终端,这样刚刚运行的后台命令也挂了?

哦豁哦豁 说:
metro 说:

楼主可以了解一下nohup命令

学到了, 好用, 感谢!

https://linuxize.com/post/how-to-use-linux-screen/

screen 命令行使用入门

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn