Linux:让进程在后台可靠运行的几种方法

详情:https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html

很多时候,我们都是通过ssh客户端连接Linux服务器,再提交任务的。
有些任务可能会执行很长时间,这时候就需要把任务提交到后台执行。

如果用以下方式提交任务,在断开ssh连接后,任务也会被终止:

command [args] [&]

我们的目的是:在我们断开ssh连接后,任务继续后台执行,下面介绍几种方法。

一、使用nohup命令

# 日志会输出到./nohup.log
nohup command [args] &

# 可以指定日志输出位置
nohup command [args] >> out.log 2>&1 &

使用nohup提交的进程,在ssh连接断开之前其父进程是当前shell进程,ssh断开后,父进程PID变为1。

要点:

  1. &符号不能省略;
  2. nohup命令执行后,最好用exit命令退出ssh连接,而不要直接关掉(我使用xshell工具,直接关掉ssh窗口,nohup提交的任务有可能一同被关掉)。

二、使用setsid命令

setsid command [args] >> out.log 2>&1

使用setsid提交的进程,其父进程PID为1,所以关闭当前shell并不会影响到任务。

三、使用screen命令

  • screen -dmS session_name来建立一个处于断开模式下的会话(并指定其会话名)。
  • screen -list列出所有会话。
  • screen -r session_name来重新连接指定会话。
  • 用快捷键CTRL-a d 来暂时断开当前会话。

screen使用帮助请参考文档。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值