我是靠谱客的博主 机智网络,最近开发中收集的这篇文章主要介绍nohub、screen管理长时间运行任务。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

       长时间连接到远程Linux服务器进行一些耗时比较长的工作(比如传输大文件,系统备份等)时,这些工作耗时过长且中途不可关闭shell窗口或者断开连接,否则任务会被kill。

       关掉窗口/断开连接会使得正在运行的程序死掉,是由于signup挂断信号,如果能够忽略signup信号,那么当我们执行耗时较长的任务时,便可以忽略它让它自己在后台运行。

       想要忽略signup信号,可以使用nohub和screen两种方法。

       1.nohub

        nohup命令可以达到这个目的,如果程序的标准输出/标准错误是终端,nohup默认将其重定向到nohup.out文件。值得注意的是nohup命令只是使得程序忽略SIGHUP信号,还需要使用标记&把它放在后台运行。

       nohup Command [ Arg … ] [ & ]

       注意:在当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;而不能每次在nohup执行成功后直接点关闭程序按钮关闭终端.。这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。

        2.screen

       screen可以简单理解为虚拟终端。我们可以在这个虚拟终端中做各种普通终端中可以做的事情,并且关掉终端或者断开连接时任务不会被挂断。

       创建screen的命令直接敲:

       screen(如果出现-bash: screen: command not found,请先尝试安装screen)

       关闭screen使用exit命令。如果使用screen -d命令。则不关闭screen回到shell界面。

       在screen界面中再次敲screen,则再次打开一个screen界面,此时使用exit命令则会进入上一个screen界面。

       常用命令:

       screen  创建一个screen(可以用screen -S ID,打开一个指定的ID session)

       screen -ls 显示所有的screen会话

       

 

       screen可用作远程演示,A在某服务器上开启screen,B连接该服务器后,使用与A同一用户,键入screen -x命令,此时B能够实时看到A在screen中做的操作。

 

 

最后

以上就是机智网络为你收集整理的nohub、screen管理长时间运行任务。的全部内容,希望文章能够帮你解决nohub、screen管理长时间运行任务。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部