Linux系统在SSH客户端关闭后继续运行程序

由于各种原因,需要通过ssh登录linux或者unix主机,很多时候我们需要通过ssh的终端启动一 些服务或者运行一些程序,但是默认情况下,当我们关闭ssh终端连接,随之启动的程序也会关闭。原因是:SSH会话关闭时,ssh所关联的pty关闭,系统会给这个pty所关联的session中的所有进程发送SIGHUP信号,SIGHUP的默认信号处理程序是终止进程,除非进程自己处理了 SIGHUP

解决方法如下:

使用现成的命令nohup,可以让指定的程序在pty关闭之后继续运行。

运行方法:

nohup ./target &

注意运行的程序要加上路径,不能直接写程序名例如:

nohup target &

现在就可以正常关闭ssh了,你会发现你的服务依然存在运行,运行的输出结果默认输出到nohup.out文件中,可以重新定义文件进行输出:

nohup ./target > a.out &

这样程序的输出结果就输出到了a.out文件中了。

当然了,也可以自己在程序中处理SIGHUP信号。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值