Linux学习笔记:nohup & 后台任务

  在linux中,使用nohup xxx.sh &可以将前台任务变成后台任务执行,如果只使用&的话,在突然断网或者关闭启动终端时,内核会向后台任务发送sighup信号,从而导致后台任务停止,此时,使用nohup命令可以忽略hangup信号,使得后台任务继续执行。注意,nohup不会自动将任务挂在后台运行,需要配合&进行说明。

  •   如果nohup命令的标准输入是终端,那么nohup将会默认使用/dev/null来重定向。
  •   如果nohup命令的标准输出是终端,那么标准输出会被附加到文件nohup.out中;如果用户没有在当前目录创建文件的权限,那么就会把输出附加到$HOME/nohup.out中;如果还是没有写入权限,那么该命令就不会执行。 
  •   如果nohup命令的标准错误是终端,那么就会被定向到标准输出的附加的文件描述符。如果标准输出被关闭了,那么标准错误就会像上面一样尝试附加到nohup.out$HOME/nohup.out中。

 测试:

  新建一个脚本:打印一个数字,删除一个不存在的文件。

# vi nohup_tes.sh
for i in `seq 1 20`;
do echo $i;
    rm a.txt;
    sleep 0.5;
done

  后台执行该任务

nohup sh nohup_test.sh &
# nohup: appending output to “nohup.out”

  在上面执行的命令中,由输出可知,标准输出被重定向到nohup.out中,查看下该文件。

复制代码
# cat nohup.out
1
rm: 无法删除 “a.txt”: 没有那个文件或目录
2
rm: 无法删除 “a.txt”: 没有那个文件或目录
3
rm: 无法删除 “a.txt”: 没有那个文件或目录
4
rm: 无法删除 “a.txt”: 没有那个文件或目录
复制代码

  该文件包含了命令的标准输出和标准错误输出。

  重定向标准输出

nohup sh nohup_test.sh 1>o.out &

  在上面执行的命令中,标准输出被重定向到stdout中,而标准输出又重定向到了o.out中。

复制代码
# head o.out
1
rm: 无法删除 “a.txt”: 没有那个文件或目录
2
rm: 无法删除 “a.txt”: 没有那个文件或目录
3
rm: 无法删除 “a.txt”: 没有那个文件或目录
4
rm: 无法删除 “a.txt”: 没有那个文件或目录
复制代码

  该文件包含了标准输出和标准错误输出。

  重定向标准输出、标准错误输出

nohup sh nohup_test.sh 1>o.out 2>e.out &

  查看输出文件

复制代码
#  head o.out
1
2
3
4
5

#  head e.out
rm: 无法删除 “a.txt”: 没有那个文件或目录
rm: 无法删除 “a.txt”: 没有那个文件或目录
rm: 无法删除 “a.txt”: 没有那个文件或目录
rm: 无法删除 “a.txt”: 没有那个文件或目录
复制代码

  shell脚本中执行nohup的问题

  如果我们在shell中执行nohup命令,并且没有进行任何重定向,那么终端上就会弹出“nohup: ignoring input and appending output to ‘nohup.out’”,并且,只有敲击回车,shell才能继续执行,否则就会卡住。 
  只要重定向了标准错误输出,终端就不会弹出任何提示,也不会卡住。但是标准错误附加的文件会出现其他的错误提示,只有重定向所有标准输入、标准输出和标准错误输出后,不会有任何错误提示。如:

nohup sh nohup_test.sh >out.log 2>&1 </dev/null &

  其他:

  • 使用job查看任务
  • 使用fg %n关闭任务

  另外2个常用ftp工具:

  • ncftpget:后台ftp下载
  • ncftpput:后台ftp上传

END 2018-08-22 11:24:50

posted @   Hider1214  阅读(2340)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示