当使用ssh与远程主机的会话被关闭时,在远程主机上运行的命令也随之被中断。

就是ssh 打开以后,bash等都是他的子程序,一旦ssh关闭,系统将所有相关进程杀掉!! 导致一旦ssh关闭,执行中的任务就取消了。

守护进程不受此影响, 因为守护进程比较特殊, 不属于sshd这个进程组 而是单独的进程组,所以就算关闭了ssh,和他也没有任何关系。

解决办法:

1、使用nohup命令来运行程序

[es@localhost ~]$ nohup /opt/elasticsearch-6.5./bin/elasticsearch
nohup: 忽略输入并把输出追加到"nohup.out" 或者
[es@localhost ~]$ nohup /opt/elasticsearch-6.5./bin/elasticsearch &
[]
[es@localhost ~]$ nohup: 忽略输入并把输出追加到"nohup.out"
#使用tail -f来查看输出信息
[es@localhost ~]$ tail -f nohup.out
[--21T11::,][INFO ][o.w.a.d.Monitor ]
。。。 。。。

nohup命令比较简单,只能做到把程序放入后台运行,并且ssh关闭后不中断,无法实施查看运行情况(除了看nohup.out),无法进行人机交互操作。

如果要实现这些,中断ssh后,重新连上还能继续操作,则需要screen这个软件。

2、screen 是一款能够实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。

用户还可以使用 screen 服务程序同时在多个远程会话中自由切换和共享会话。

2.1、安装

检查一下REPO里cdrom的配置

[root@localhost yum.repos.d]# cat CentOS-Media.repo
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c7-media [command] [c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

挂载centos7镜像来安装

[root@localhost yum.repos.d]# mkdir -p /media/cdrom

[root@localhost yum.repos.d]# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost yum.repos.d]# yum install screen 已安装:
screen.x86_64 :4.1.-0.25.20120314git3c2946.el7 完毕!
[root@localhost yum.repos.d]# screen --help

2.2、恢复session

[root@localhost ~]# screen -ls
No Sockets found in /var/run/screen/S-root. #创建一个session,名字es,屏幕一闪,实际已经进入screen
[root@localhost ~]# screen -S es [root@localhost ~]# screen -ls
There is a screen on:
.es (Attached)
Socket in /var/run/screen/S-root.

#执行ping,然后直接关闭ssh窗口
[root@localhost ~]# ping 192.168.1.103
PING 192.168.1.103 (192.168.1.103) () bytes of data.
bytes from 192.168.1.103: icmp_seq= ttl= time=0.648 ms

#重新登录ssh,使用screen -ls查看,有session是detached
[root@localhost ~]# screen -ls
There is a screen on:
.es (Detached)
Socket in /var/run/screen/S-root.

#恢复窗口,ping一直在运行
[root@localhost ~]# screen -r .es ... ...
bytes from 192.168.1.103: icmp_seq= ttl= time=0.904 ms
bytes from 192.168.1.103: icmp_seq= ttl= time=1.07 ms
bytes from 192.168.1.103: icmp_seq= ttl= time=0.773 ms
bytes from 192.168.1.103: icmp_seq= ttl= time=1.26 ms
^C
--- 192.168.1.103 ping statistics ---
packets transmitted, received, % packet loss, time 85134ms
rtt min/avg/max/mdev = 0.467/1.051/4.810/0.535 ms 打exit退出screen
[screen is terminating]

也可以不手动创建session,直接使用screen 命令执行要运行的命令,这样在命令中的一切操作也都会被记录下来,当命令执行结束后 screen 会话也会自动结束。

这种情况下,session名字是系统自动创建的。

[es@localhost ~]$ screen /opt/elasticsearch-6.5./bin/elasticsearch

断开ssh后,重新查看
[es@localhost ~]$ screen -ls
There is a screen on:
.pts-.localhost (Detached)
Socket in /var/run/screen/S-es. 用kill命令杀掉elasticsearch后,screen自动终止

2.3、共享session,可以多个终端连入同一个session,所有操作在连入的终端上都可以显示,所有终端都可以操作。

[root@localhost network-scripts]# screen -ls
There are screens on:
.ping3 (Detached)
.myping (Detached)
Sockets in /var/run/screen/S-root. [root@localhost network-scripts]# screen -x ping3

CentOS 不间断会话(ssh关闭后如何保证程序继续运行)(nohup和screen)的更多相关文章

  1. win7程序关闭后弹出 程序兼容性助手 这个程序可能安装不正确 如果此程序没有正确安装,处理方式

    用WTL编写的程序,编译成release后,在win7上关闭后,弹出这个对话框 处理方法: 将这个xml文件命名成 xxx.exe.manifest,保存到指定目录下 <?xml version ...

  2. chrome关闭后还在进程中运行

    1.网上搜到信息: 设置 “即使关闭浏览器也后台运行” 取消打勾 2.然后我找了一下,应该是这个选项:“关闭 Google Chrome 后继续运行后台应用” 3. 4. 5.

  3. 如何实现SSH断开后 进程仍然在后台运行

    1.nohup命令功能:不挂断地运行命令,忽略HUP信号.语法:nohup command & 实例:nohup ping www.google.com & 转自: http://bl ...

  4. linux后台运行程序(secureCRT断掉或关闭后继续运行程序)

    secureCRT断掉后想继续运行程序.也就是程序会在后台一直执行到结束. secureCRT通过ssh联接到client端运行程序,如果关掉窗口或者断开连接时,任务会被kill. 为了程序能够后台执 ...

  5. CentOS 6.0修改ssh远程连接端口

    转自:系统运维 » CentOS 6.0修改ssh远程连接端口 实现目的:把ssh默认远程连接端口修改为2222 方法如下: 1.编辑防火墙配置:vi /etc/sysconfig/iptables ...

  6. centos 6.3安装ssh

    centos 6.3安装ssh   安装ssh服务器端软件 yum install openssh-server   安装ssh客户端软件   yum install openssh-clients ...

  7. Java Web 浏览器关闭后Session就会被销毁吗?

    浏览器关闭后Session就会被销毁吗? Session是JSP的九大内置对象(也称为隐含对象)中的一个,用于保存当前用户的状态信息,初学者可能认为Session的生命周期是从打开一个浏览器发送请求到 ...

  8. linux ------ 使用 screen 后 SSH 断开后程序依旧能在后台运行

    为什么ssh断开后你运行的进程会退出呢? 因为所有进程都得有个父进程.当你ssh到一个服务器上时,打开的shell就是你所有执行命令的父进程. 当你断开ssh连接时,你的命令的父进程就没了.如果处理不 ...

  9. 微信WebView关闭后本地cookie无法清除问题

    问题背景 在微信WebView下的页面中登录后,关闭WebView返回后再次进入页面,发现登录态还存在,原因是微信不会主动清除cookie以及其他的缓存. 期望是关闭窗口后会清除cookie,重新进入 ...

随机推荐

  1. Android AOSP 单独编译某一模块

    由于AOSP 项目太大,我只修改了一个模块,比如设置. 那么只需要单独编译设置这个模块就可以了. 首先执行Source: source build/envsetup.sh 执行之后,就会有一些额外的命 ...

  2. 虚拟机ubuntu使用串口

    1. 电脑的串口默认是在windows系统上,需要把串口转到ubuntu上面,按照下面的步骤先 2. 找到需要使用的串口 3. 在VMWARE里面连接该串口 或者使用方法 4. 成功之后,检查一下ls ...

  3. HI-2110的657sp3版本应用笔记之TUP

    1. TUP是什么? TUP是华为的搞的一套封装了标准Coap的函数,底层是Coap,上层是华为封装的一层收发函数,用来简化Coap的收发流程,最终只用6个函数搞定,不用懂Coap就可以的. 2. T ...

  4. UpdateLog

    2014-10-20 增加数据适配器,使支持多数据库类型2015-01-08 增加没有主键ID的抽象类,使能自义主键字段实现MODEL 增加虚拟字段转换,将指定函数或语法转换为对象属性,灵活性更大了 ...

  5. git 创建新项目,下载工程,合并和更新工程简单应用记录

    以前使用SVN很顺手,现在公司使用git来管理代码,因此学习git的基本使用. 一.首先介绍下SVN和git的简单比较: SVN是使用得最多的版本控制管理工具. 1.是一个集中式的版本管理工具.所有的 ...

  6. 「日常训练」Caterpillar(POJ-3310)

    题意与分析 一条很有趣的题目.给一个无向图,问它是否无环,且可以在上面找到一条线,使所有的顶点要么在线上要么不在线上但在与线相连的边上. 那么首先要确定所有点联系在一起.这个可以同判环一起处理:如果建 ...

  7. 2019年1月23日,好像是这个日子,RF发布了 1.7.3.1 支持python3.6以上了,安装成功。

    安装步骤:(win10 家庭版 64) 1.安装Python3.7.2,记得勾选添加Path 2.pip install robotframework 3.pip install wxPython 4 ...

  8. Java 语法基础

    一 关键字 关键字: 其实就是某种语言赋予了特殊含义的单词 保留字: 其实就是还没有赋予特殊含义 但是准备日后要使用过的单词 二 标示符 标示符: 其实就是在程序中自定义的名词 比如类名, 变量名, ...

  9. Paper Reading - Learning like a Child: Fast Novel Visual Concept Learning from Sentence Descriptions of Images ( ICCV 2015 )

    Link of the Paper: https://arxiv.org/pdf/1504.06692.pdf Innovations: The authors propose the Novel V ...

  10. spring 整合hibernate注解时候,出现“Unknown entity: com.ssh.entry.Admin; nested exception is org.hibernate.MappingException: Unknown entity: com.ssh.entry.Admin”异常的问题

    今天学习使用ssh框架的时候,出现一个异常,弄了好久才找到,在这记录一下,我的sb错误1.spring整合hibernate,取代*.hbm.xml配置文件   在applicationContext ...