美文网首页技术分享生物信息数据科学
14.《Bioinformatics Data Skills》之

14.《Bioinformatics Data Skills》之

作者: DataScience | 来源:发表于2021-06-07 10:01 被阅读0次

我们总是遇到需要在服务器上面长时间地运行程序,问题在于即使你后台运行程序,但是当你关闭终端或者网络波动时都会触发挂起(SIGHUP)信号,中断程序,非常地不方便。这里介绍两种方式来避免这样的问题出现,分别是nohup命令与screen工具。


nohup命令

nohup命令的使用方式非常直接:

nohup program inputfile > outputfile &
[1] 22
[1]+  Exit 2                  nohup R

注意:

  1. 成功使用nohup运行程序后不要直接关闭终端,而是采用exit命令退出,否则程序还是会断
  2. nohup成功运行下面显示的数字为PID,退出并重新回到终端时jobs命令已经失效,终止程序的话只能使用kill PID。
  3. 可以通过$HOME/nohup.out文件追踪程序的输出与报错信息

screen

使用screen工具更加友好,类似的工具还有tmux。很多linux版本会预先安装screen工具,可以先查看一下版本(没有的话自行安装一下):

screen --version
Screen version 4.04.00 (GNU) 19-Jun-16

基础操作

  1. 命令行输入screen运行(可能会弹出用户协议,按enterspace键跳过)
  2. 运行想要执行的程序
  3. 通过快捷键ctrl+a d来分离session
  4. 使用screen -r回到最近的session

注意:

  1. 可以使用screen -S session_name创建一个命名的session
  2. 如果有多个session存在的话可以使用screen -ls来查看多个session,在-r参数后面加上session编号返回
screen -ls
There are screens on:
        4704.pts-15.c1  (Attached)
        7429.pts-18.c1  (Detached)
2 Sockets in /tmp/uscreens/S-yongwudao2019.
screen -r 4704
  1. 如果想要终止一个session,使用screen -r回到那个session,使用快捷键ctrl+a k,输入y确认
  2. 其它快捷键操作可以在screen session内通过快捷键ctrl+a ?查看

参考

[1]. https://linuxize.com/post/how-to-use-linux-screen/
[2]. https://askubuntu.com/questions/356006/kill-a-screen-session

相关文章

网友评论

    本文标题:14.《Bioinformatics Data Skills》之

    本文链接:https://www.haomeiwen.com/subject/achosltx.html