25
2019
01

将正在运行的任务脱离终端运行

让任务脱离终端运行,是非常容易做到的,常用的方法有两种:tmux/screen,或者nohup。如果一个正在的运行的任务,因为网络或者时间关系,需要退出当前会话,如何让其在后台继续运行呢?答案是使用disown命令,本文介绍其用法。

将正在运行的任务脱离终端运行

使用disown将正在运行的任务脱离终端运行的操作如下:

  1. ctrl + z暂停任务;
  2. 执行bg让其转入后台继续运行;
  3. 输入disown -h %jobid让其脱离终端运行,其中jobid是用jobs命令查看的后台任务编号。如果有多个任务,可以使用disown -a命令.

disownbash内置命令,作用是删除当前shell的任务。如果你的shell不是bash,可能没有disown,则可以尝试kill命令组合达到相同效果:

  1. 新打开一个会话,暂停任务:kill -s SIGTSTP pid
  2. 在新会话中将任务放入后台运行:kill -s SIGCONT pid;
  3. 此时两个会话均可安全的关闭,任务将继续在后台执行。

参考

  1. https://stackoverflow.com/questions/625409/how-do-i-put-an-already-running-process-under-nohup

原文链接:https://www.qiquanji.com/post/4915.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。