美文网首页技术杂谈Shell
Linux下使Shell 命令脱离终端在后台运行

Linux下使Shell 命令脱离终端在后台运行

作者: Devid | 来源:发表于2015-12-21 10:02 被阅读326次

转自:http://www.linuxidc.com/Linux/2011-05/35723.htm

你是否遇到过这样的情况:从终端软件登录远程的Linux主机,将一堆很大的文件压缩为一个.tar.gz文件,连续压缩了半个小时还没有完成,这时,突然你断网了,你登录不上远程Linux主机了,那么前面的半个小时就会前功尽弃,你非常气愤……

在Linux下,如果你要执行的shell命令耗时特别长,并且:

  • 你的网络不稳定,随时可能断网;
  • 你在执行了shell命令之后必须要关闭终端软件(例如SecureCRT)。

那么你就需要以脱离终端的方式在后台运行这个shell命令。

方法如下:

  1. 输入命令:
nohup 你的shell命令 &
  1. 回车,使终端回到shell命令行;

  2. 输入exit命令退出终端:

exit
  1. 现在可以关闭你的终端软件了,等过足够的时间,让你的shell命令执行完了再上去看结果吧。

其中,nohup命令可以让你的shell命令忽略SIGHUP信号,即可以使之脱离终端运行;“&”可以让你的命令在后台运行。

以脱离终端的方式在后台运行shell命令有这样几个好处:只要你执行过了命令,那么你的网络中断不会对你有任何影响,并且你就可以关闭终端软件了

nohup默认会将log输出到当前目录下的nohup.out文件中,可以查看其内容:

cat nohup.out

相关文章

网友评论

  • e7f375868dbc:看起来挺不错的......我尝试一下这样能不能执行xserver.......
    Devid:@永远的萌新 :sweat_smile:
    e7f375868dbc:@永远的萌新 好吧,找到方法了,输入jobs可以看到.......
    e7f375868dbc:成功了.....然而并不知道该如何确定某个命令是否已经执行完成......

本文标题:Linux下使Shell 命令脱离终端在后台运行

本文链接:https://www.haomeiwen.com/subject/ktemhttx.html