首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当ssh连接关闭时,谁是SIGHUP的原始发送者?

当ssh连接关闭时,SIGHUP的原始发送者是ssh客户端。SIGHUP(Hangup Signal)是一种POSIX标准的信号,在UNIX和类UNIX系统中用于通知进程连接已关闭或终端会话已断开。当ssh连接关闭时,ssh客户端会向ssh服务器发送SIGHUP信号,通知服务器连接已经关闭。服务器收到SIGHUP信号后,通常会终止与该ssh客户端相关的进程或会话。

对于云计算领域,腾讯云提供了一系列与网络通信和服务器运维相关的产品和服务,包括云服务器(CVM)、弹性公网IP(EIP)、负载均衡(CLB)等。您可以通过以下链接了解更多相关信息:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云弹性公网IP(EIP):https://cloud.tencent.com/product/eip
  • 腾讯云负载均衡(CLB):https://cloud.tencent.com/product/clb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CobaltStrike团体服务器部署并后台运行

我把团队服务器放在ECS上,出现了两个问题:1.客户端无法连接到团队服务器;2.SSH连接ECS,当关闭SSH后发现服务端进程也关闭了。 今天就这两个问题来解决。...那么为什么ssh关闭,程序就不再运行了? 答:元凶:SIGHUP 信号 让我们来看看为什么关掉窗口/断开连接会使得正在运行程序死掉。...根据POSIX.1定义: 挂断信号(SIGHUP)默认动作是终止程序。 终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。...一个进程退出导致一个孤儿进程组中产生,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。...简而言之:就是ssh 打开以后,bash等都是他子程序,一旦ssh关闭,系统将所有相关进程杀掉!!

5.4K60

nohup 命令 解决 SSH关闭窗口,程序也中断问题!

问题描述 SSH远程连接到服务器上,然后运行一个程序,eg: ./test.sh, 然后把终端开闭(切断SSH连接)之后,发现该程序中断....解释 终端接口检测到网络连接断开, 将挂断信号发送给控制进程(会话期首进程). 如果会话期首进程终止,则该信号发送到该会话期前台进程组....结论 因此网络断开或终端窗口关闭后, 也就是SSH断开以后, 控制进程收到 SIGHUP 信号退出, 会导致该会话期内其他进程退出....简而言之: 就是 ssh 打开以后, bash等都是他子程序, 一旦ssh关闭, 系统将所有相关进程杀掉!! 导致一旦ssh关闭, 执行中任务就取消了....只要是ssh 打开执行一般命令,不是守护程序,无论加不加&,一旦关闭ssh,系统就会用SIGHUP终止.

5.8K20
  • 【致远FAQ】致远OA宕机之Tomcat异常宕机

    6)该日志中也记录了发出ssh断开连接事件客户端ip地址(该信息非常有用,可以根据ip地址定位到操作者,并通过操作者了解问题发生前相关操作信息,这为后期缩小问题范围并将问题复现提供了很有价值线索)...7)至此,发现了一个重要线索:tomcat退出与sshdsession关闭发生在同一刻;即使是巧合,这个信息也是值得去深究。...这种情况下,如果用户直接关闭ssh终端窗口,sshd会把SIGHUP信号传递给bash进程,bash会把SIGHUP传递给seeyonupdate进程及该进程所属进程组所有进程成员。...tail命令,对日志信息进行查看(此时,seeyonupdate脚本并未退出,而是挂在了tail进程上) 2)用户关闭ssh终端窗口或网络断开导致ssh连接断开,sshd会把SIGHUP信号发给了窗口内...(如图6所示);该线程会触发Tomcatshutdownhook函数(如图7所示),在该函数中会执行tomcat退出资源销毁操作(如图8所示): 图6 jstack堆栈快照 图7 jstack

    1.5K30

    玩转 Linux 之:由 Nginx log rotation 聊聊 mv 妙用

    // (2) 通知旧工作进程优雅地推出,这些工作进程停止接受新连接。一旦当前处理HTTP请求结束,工作进程会关闭连接。一旦所有连接关闭,工作进程就会退出。...SIGHUP含义是连接断开,系统对SIGHUP信号默认处理是终止收到该信号进程。...SIGHUP会在以下3种情况下被发送给相应进程: 1、终端关闭,该信号被发送到session首进程以及作为job提交进程(即用 & 符号提交进程) 2、session首进程退出,该信号被发送到该...一般守护进程都会在收到这个信号重新加载配置(本质上由开发者决定),因为 SIGHUP 本来意义对守信进程没有意义(SIGHUP控制终端失去连接触发信号,而守护进程没有控制终端,所以根本用不上...再例如, 当你ssh到一台机器, 然后开个vim, 当你关闭这个 ssh 会话时候 vim 就会收到 SIGHUP 信号,然后 vim 就会被终止。

    1.6K100

    linux中怎么干掉一个进程

    你是否曾经遇到过启动应用程序,而在使用该应用程序时突然变得无响应并意外崩溃情况?你尝试再次启动该应用程序,但没有任何反应,因为原始应用程序进程从未真正完全关闭。...没有指定信号,两个工具都会发送-15(-TERM)。 最常用信号是: 1(-HUP):重新启动进程。 9 (-KILL):杀死一个进程。 15 (-TERM):正常停止进程。...可以通过三种不同方式指定信号: 使用带有SIG前缀(例如-SIGHUP) 使用数字(例如-1) 不带SIG前缀(例如-HUP) 。...使用-l选项列出所有可用信号: kill -l # or killall -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL...ps -eo pid,cmd | grep ssh 1039 sshd 2257 ssh-agent 6850 ssh 31279 ssh-agent 通过正则批量关闭 pkill '^ssh$'

    1.6K20

    Linux下几种运行后台任务方法

    问题引入 程序员最不能容忍是在使用终端时候往往因为网络,关闭屏幕,执行 CTRL+C 等原因造成 ssh 断开造成正在运行程序退出,使得我们工作功亏一篑。...interrupt,ctrl+c 会发送此信号,主动关闭程序 2)sighup: signal hang up,关闭终端,网络断线,关闭屏幕会发送此挂断信号。...2 & 符号 这是一种把 & 放在执行命令最后,使启动程序忽略 sigint 信号, 此时执行 ctrl+c 关闭就不会关闭此进程,但是屏幕关闭,断网仍然会造成进程退出。...nohup 捕获了 SIGHUP,并做了忽略处理,因此屏幕关闭,断网等造成 ssh 中断进程不会退出。...说人话版本: 我们可以粗略地认为 screen 是一个虚拟终端软件,直接在 linux 系统里面启动了另外一个后台程序接管(维持)了你终端会话,当你直接连接终端 ssh 断开他仍然让程序认为你

    2.8K60

    Linux使用笔记2-screen妙用(保留端口会话)

    现在一般都是用Windows通过ssh连接到linux,有时候工作到兴起,断网了、或者重启了,这时候一切都完了,重新连接也不能回到以前会话。...那么有没有一种可能,在我重新连接到linux之时,能够重新回到我上一个工作端口呢,答案是肯定,利用工具screen就可以 用户被kill元凶 让我们来看看为什么关掉窗口/断开连接会使得正在运行程序死掉...根据POSIX.1定义: 挂断信号(SIGHUP)默认动作是终止程序。 终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。...一个进程退出导致一个孤儿进程组中产生,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。...因此网络断开或终端窗口关闭后,控制进程收到SIGHUP信号退出,会导致该会话期内其他进程退出。

    1.4K80

    教Linux运维人员怎样使用screen

    根据POSIX.1定义:挂断信号(SIGHUP)默认动作是终止程序。终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。如果会话期首进程终止,则该信号发送到该会话期前台进程组。...一个进程退出导致一个孤儿进程组中产生,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。...因此网络断开或终端窗口关闭后,控制进程收到SIGHUP信号退出,会导致该会话期内其他进程退出。 会话实例 打开两个SSH终端窗口,在其中一个运行top命令。...Screen中有会话概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实telnet/SSH连接窗口那样。...如果按老办法,SSH登录到系统,直接ftp命令开始传输,之后。。如果网络速度还可以,恭喜你,不用等太长时间了;如果网络不好,老老实实等着吧,只能传输完毕再断开SSH连接了。

    1.9K00

    Tomcat进程意外退出,元凶居然是他...

    这种情况下,如果用户直接关闭ssh终端窗口(用鼠标或快捷键),则java进程也会退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...这是一个有趣现象,catalina.sh start方式启动tomcat会把java进程挂到init(进程id为1)父进程下,已经与当前test.sh进程脱离了父子关系,也与ssh进程没有关系,为什么关闭...我们推测是ssh窗口在关闭,对当前交互shell以及正在运行test.sh等子进程发送某个退出Signal,找了一台装有systemtap机器来验证,所用stap脚本是从涧泉同学那里copy...ssh终端窗口,sshd向下游进程发送SIGHUP, 为何java进程也会收到?...catalina.sh自身进程退出后,java进程ppid变成了1 花了很多时间猜测可能是OS层面的原因,后来发现并没有关系。

    4K10

    eclipse打包springboot项目上传至linux服务器运行

    nohup java -jar xx.jar &即可后台运行,且断开ssh后程序不会关闭。...理解nohup和& 参考 理解nohup和& 理解sigint和sighup 测试nohup和&效果 为了了解nohup运作原理,查阅nohup源码解析 nohup关键是调用signal函数...,将信号SIGHUP处理函数设置为SIG_IGN,详见signal函数(三.1、) & : 指在后台运行,屏蔽sigint指令 nohup : nohup 是 no hang up 缩写,就是不挂断意思...nohup 会使程序忽略所有挂断(SIGHUP)信号。 也就是说,我们断开SSH连接(远程运行时),或者把终端关闭(本地运行时),不会中止程序。...但发出ctrl + c命令仍然能关闭 关闭后台springboot程序 lsof -i:port 查找程序进程id,其中port为你项目所监听端口,比如9090。

    1.7K20

    Tomcat 进程意外突崩,元凶居然是它...

    这种情况下,如果用户直接关闭ssh终端窗口(用鼠标或快捷键),则java进程也会退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...这是一个有趣现象,catalina.sh start方式启动tomcat会把java进程挂到init(进程id为1)父进程下,已经与当前test.sh进程脱离了父子关系,也与ssh进程没有关系,为什么关闭...我们推测是ssh窗口在关闭,对当前交互shell以及正在运行test.sh等子进程发送某个退出Signal,找了一台装有systemtap机器来验证,所用stap脚本是从涧泉同学那里copy...ssh终端窗口,sshd向下游进程发送SIGHUP, 为何java进程也会收到?...catalina.sh自身进程退出后,java进程ppid变成了1 花了很多时间猜测可能是OS层面的原因,后来发现并没有关系。

    1K10

    java检测tomcat宕机_Tomcat意外宕机分析

    这种情况下: 1)、如果我先直接关掉ssh窗口后,Java进程会退出,服务不可用。 2)、而我如果先 用ctrl-c终止test.sh进程,然后再关闭ssh终端的话,这时Java进程不会退出。...这是一个有趣现象,catalina.sh start方式启动tomcat会把java进程挂到init(进程id为1)父进程下,已经与当前test.sh进程脱离了父子关系,也与ssh进程没有关系,为什么关闭...经过测试,有发现: a) 用 ctrl-c 终止当前test.sh进程,系统events进程向 java 和 tail 两个进程发送了SIGINT 信号 b) 关闭ssh终端窗口,sshd向下游进程发送...在非交互模式下,shell对java进程设置了SIGINT,SIGQUIT信号设置了忽略,但并没有对SIGHUP信号设为忽略,回头看上面说,直接关闭ssh终端窗口,sshd向下游进程发送SIGHUP...传递给bash进程后,bash会把SIGHUP传递给它子进程,并且对于其子进程test.sh,bash还会对test.sh进程组里成员都传播一遍SIGHUP

    1.4K10

    nohup 与 & 区别

    当我们断开ssh 连接时候不会影响他运行。而& 表示后台运行。ssh 断开连接时候(用户退出或挂起时候),命令也自动退出。...如果是超级管理员root 对应是/root 目录。 从上面对比我们发现: 1. & 可以使得命令 免疫 ctrl c SIGINT 信号,不能是的命令对 SIGHUP 信号进行免疫。...为了使得 & 达到相同效果: 我们可以使用如下操作: 如果已经使用 & 命令进行 后台运行。 可以使用disown -h 让任务忽略sighup 信号; 同样不会因为控制台终端而中断任务。...断开终端重新登录: ? 这样当你在大量备份文件时候,如果出现断网或者不得不下线时候。我们可以使用。...ctrl z 挂起任务;disown-h 使得任务 忽略sighup 信号;使用 bg 命令使得命令后台运行。这样就可以放心得下线了。

    2K10

    Linux :忘记使用nohup该如何补救

    0x01 问题描述 1.1 为何关闭进程 当用户注销(logout)或者网络断开,终端会收到 HUP(hangup)信号从而关闭其所有子进程。...原因是:SSH会话关闭ssh所关联pty关闭,系统会给这个pty所关联session中所有进程发送SIGHUP信号,SIGHUP默认信号处理程序是终止进程,除非进程自己处理了SIGHUP。...阻止SIGHUP信号发到这个进程。 关闭标准输入。该进程不再能够接收任何输入,即使运行在前台。 重定向标准输出和标准错误到文件nohup.out。...也就是说,nohup命令实际上将子进程与它所在 session 分离了。所以shell窗口关闭时候,nohup 命令所在进程也不会被结束。...另外关于当前任务,如果后台运行任务号有2个时候,1号任务执行完毕之后,2号任务此时就为当前任务,那么使用fg、bg等命令不加上job number时候,默认为变动都是当前任务。

    1.5K30

    Linux - 请允许我静静地后台运行

    后台执行 我们每次在终端窗口执行命令时候,进程总会一直占用着终端,走到进程结束,这段时间内,我们在终端输入是没有用。而且,终端窗口关闭或网络连接失败后,再次打开终端,会发现进程已经中断了。...这是因为用户注销或者网络断开SIGHUP信号会被发送到会话所属子进程,而此 SIGHUP 默认处理方式是终止收到该信号进程。所以若程序中没有捕捉该信号,终端关闭后,会话所属进程就会退出。...使进程不再受终端关闭影响,即系统在终端关闭后不再向进程发送 SIGHUP 信号或即使发送了信号程序也不会退出。 以下命令就围绕着这两个目标来实现。...但我们会发现,如果此时终端被关闭后,进程还是会退出。这是因为,& 符号只有让进程让出前台终端功能,无法让进程不受 SIGHUP 信号影响。...守护进程 守护进程(daemon)是生存期较长一种进程,一般在系统启动启动,系统关闭停止,没有控制终端,也不会输出。如我们服务器、fpm 等进程就是以守护进程形式存在

    1.7K50

    Linux系列 | 了解nohup和&功效

    此时如果关掉session,程序会收到一个 SIGHUP信号,程序会不会关闭呢?...信号量 SIGHUP 本信号在用户终端连接(正常或非正常)结束发出, 通常是在终端控制进程结束, 通知同一session内各个作业,这时它们与控制终端不再关联。...当用户退出Linux登录,前台进程组和后台有对终端输出进程将会收到SIGHUP信号。这个信号默认操作为终止进程,因此前台进 程组和后台有终端输出进程就会中止。...关闭session,发送SIGHUP信号,再来看看。...使用Ctrl + C发送SIGINT信号,程序关闭 关闭session发送SIGHUP信号,程序免疫 平日线上经常使用 nohup和 &配合来启动程序 同时免疫SIGINT和SIGHUP信号 (

    1.3K21

    Linux 守护进程|应急响应

    清除进程umask以确保daemon创建文件和目录拥有所需权限。 修改进程的当前工作目录,通常会改为根目录(/)。这样做是有必要,因为daemon通常会一直运行直至系统关闭为止。...从这里可以看到,虽然我们把ssh连接退出了,但是后台进行依旧在这个session上执行,还属于这个会话,所以如果session存在还在执行后台进程,即使关闭终端或者断开ssh等远程连接,session...一个终端关闭或者ssh等远程连接退出时候,系统会向session管理所有进程发送一个SIGHUP信号,这个信号就是挂断意思,效果就是进程中断,理论上问题5中 ping www.baidu.com...,在这种配置下,关闭终端后台进程不会收到SIGHUP信号。...可以看到,在当前系统中,该参数为off,所以才会出现终端关闭或者ssh等远程连接断开时候,后台进程能够继续以这个session运行 此时再说 nohup 应该就很清晰了,nohup其实就是忽略SIGHUP

    3.8K30
    领券