Chinaunix首页 | 论坛 | 博客
  • 博客访问: 991595
  • 博文数量: 481
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5078
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-07 14:48
个人简介

分享工作和学习中的点点滴滴,包括前端、后端、运维、产品等各个方面,欢迎您来关注订阅!

文章分类

全部博文(481)

文章存档

2023年(26)

2022年(97)

2021年(119)

2020年(153)

2019年(70)

2018年(16)

我的朋友

分类: LINUX

2019-07-29 00:53:27

其实是很常见的需求,但之前一直用"nohup command &"这种方式。

不过有些时候没有充分估计到某些工作的不靠谱性,以为很快能搞定的事,就没用nohup直接执行,当你快要下班了它还遥遥无期。这个时候也可以先ctrl + z从前台挂起,然后bg让它跑到后台去执行,最后再来一个disown -a,这样就可以放心关了终端早点回家了。下次再用其他终端连接上来之后你的工作仍会在持续执行,但是这时候是不能用fg这样的命令让它再回到前台执行的,jobs也不会显示它。

如果你想持续看到后台进程的输出,以前的办法就是在运行之前就将它重定向到一个文件,后续回来查看文件即可。但如果进程已经开始执行了,再去重定向就稍微费点劲。网上有些用gdb调的方法,我试了试不是太成功,本来打算继续看看,结果发现还是老老实实用screen靠谱一点…

其实screen这个命令应该不是什么新鲜玩意了,也有很多人在使用。不过对我来说还是一个挺有新意的发现。我的一般套路:
新建一个screen并命名为ftp:

screen -S ftp

此时会直接进入新的bash,这里搞一些耗时的操作,例如scp等等。
从ftp退回,用快捷键ctrl+a d.
这个时候其实就可以关闭当前终端了。新打开一个终端,查看现有screen列表:

screen -ls

看看上传得怎么样了:

screen -r ftp

不但scp的工作没有中断,还可以看到scp当前所有输出,和之前的终端没有关闭一样。

阅读(1531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~