Linux 如何让远程连接工具操作断开后所做的操作不结束

一般情况下,我们用xshell等连接工具操作linux系统时,有些操作的生命周期是本次会话,比如说python的web服务,如果你一旦断开,再次重连你会发现它就结束了。

这种情况发生的原因是你远程工具连接的这次会话,对于linux来说,它也是一个进程,拥有一个进程号。

在这里插入图片描述

当你结束本次会话,linux在回收资源的时候就视为从会话进程开始往下的所有子进程都结束了。

所以你想要结束远程连接,任务还不结束,那就有两种思路,第一种是把操作的进程交给会话的父进程,第二种就是使用插件使得你的会话结束,但是服务任然在运行。

第一种交给父进程

这种方式使用很简单,适用于针对某个服务或者是某个单独的进程操作,就是在命令的前面加上nohup就可以把它交给父进程

比如--------在这里插入图片描述

nohup python -m SimpleHTTPServer 10040 & >> /opt/start_cdh_log/cdh_start.log

这种方式linux系统自带的,随后想要结束进程时,如果没有服务自己的stop命令,就只能kill

[root@hdp2 ~]# nohup --help
用法:nohup 命令 [参数]...
 或:nohup 选项
忽略挂起信号运行指定的命令。

      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

If standard input is a terminal, redirect it from /dev/null.
If standard output is a terminal, append output to 'nohup.out' if possible,
'$HOME/nohup.out' otherwise.
If standard error is a terminal, redirect it to standard output.
To save output to FILE, use 'nohup COMMAND > FILE'.

注意:您的shell 内含自己的nohup 程序版本,它会覆盖这里所提及的相应
版本。请查阅您的shell 文档获知它所支持的选项。

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告nohup 的翻译错误
要获取完整文档,请运行:info coreutils 'nohup invocation'

第二种用插件

有个插件工具叫tmux,它可以为你以服务的形式持久的运行一个会话。

yum install -y tmux

在这里插入图片描述

随后在你操作的时候使用命令tmux new -s session_name 新开一个会话服务

tmux new -s testse

在这里插入图片描述

在会话里你就可以操作了,如果要回到原先的系统会话,先按下ctrl+b,然后再单独按d
在这里插入图片描述

出现上面这个界面,你就回到原本的系统远程会话了,不过此时tmux会话里的进程仍然在运行。

你想重新回到tmux会话里就运行tmux a -t session_name

在会话间切换的命令: 先按ctrl+b ,再按s,然后就可以在会话间选择其中一个,按enter进入。
在这里插入图片描述
列出会话tmux ls
在这里插入图片描述

即使关闭远程,会话也仍然存在,如果里面有进程,会持续运行。除非进入会话中把进程关闭掉。

关闭会话的方法:tmux kill-session -t session_name
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值