云社区 博客 博客详情
云社区 博客 博客详情

玩转云主机:远程登录长进程保护 nohup

oneliner 发表于 2020-04-10 14:59:34 04-10 14:59
oneliner 发表于 2020-04-10 14:59:34 2020/04/10
0
1

【摘要】 这个系列是介绍Linux 命令行环境常用的效率工具。有些工具不是系统默认安装的,甚至有些学习成本,但如果一个动作每天要做数十次,那花一点时间优化/简化是一件划算的事。

这个系列是介绍Linux 命令行环境常用的效率工具。有些工具不是系统默认安装的,甚至有些学习成本,但如果一个动作每天要做数十次,那花一点时间优化/简化是一件划算的事。


nohup 无需额外安装,是操作系统自带命令,提供对长时间运行单进程的保护。

在讲 nohup 之前,我想先说 &(后台执行) 命令。

& 放在一条命令后面执行,这条命令会转入后台, shell REPL(read-eval-print-loop) 不会阻塞,我们可以继续其他操作,它保护的是我们的注意力而不是任务本身。 以下是一个下载大文件的示例:

-

Bash 代码


1wget http://somewhere.com/veryLargeFile.tar.gz  &


nohup 放在一条命令前面执行,通常配合 &。如果一个同步任务已经执行 90%, 你预估还要20分钟,可是夜班车还有10分钟就收车了。你很想走,但是怕走了以后terminal 会异常退出,这样5个小时的任务前功尽弃了。异常退出的原因有很多,比如:


  • 网络抖动了(很少)

  • vpn 切换了(不小心)

  • 笔记本电池没电了(客户端putty 断了)

  • 跳板机被抢占(windows sucks)

  • 长时间没有输入(session timeout )

  • 主动登出(忘了)


以上都会造成客户端和远程server 中断使shell 进程退出,shell 下面发起的所有子进程都会收到一个 hangup 中断信号,包括你90%完成的任务。

而 nohup 的意思是, shell 进程你先走吧,不要 hangup 我。即使网络中断,客户端死机都没事,服务端的进程会继续执行。

-

Bash 代码


1nohup bash superLongScript.sh &

可以去赶车了。


登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 1
点赞
分享文章到微博
分享文章到朋友圈

评论 (0)


0/1000
评论

登录后可评论,请 登录注册

评论

您还没有写博客的权限!

温馨提示

您确认删除评论吗?

确定
取消
温馨提示

您确认删除评论吗?

删除操作无法恢复,请谨慎操作。

确定
取消
温馨提示

您确认删除博客吗?

确定
取消

确认删除

您确认删除博客吗?

确认删除

您确认删除评论吗?

温馨提示

登录超时或用户已下线,请重新登录!!!

确定
取消