- 14.《Bioinformatics Data Skills》之
- 28.《Bioinformatics-Data-Skills》之
- 18.《Bioinformatics-Data-Skills》之
- 19.《Bioinformatics-Data-Skills》之
- 【shell笔记>生信|专项】生信数据处理技能手札(3):
- Bioinformatics Data Skills
- 17.《Bioinformatics-Data-Skills》之
- 25.《Bioinformatics-Data-Skills》之
- 25.《Bioinformatics-Data-Skills》之
- 23.《Bioinformatics-Data-Skills》之
我们总是遇到需要在服务器上面长时间地运行程序,问题在于即使你后台运行程序,但是当你关闭终端或者网络波动时都会触发挂起(SIGHUP)信号,中断程序,非常地不方便。这里介绍两种方式来避免这样的问题出现,分别是nohup命令与screen工具。
nohup命令
nohup命令的使用方式非常直接:
nohup program inputfile > outputfile &
[1] 22
[1]+ Exit 2 nohup R
注意:
- 成功使用nohup运行程序后不要直接关闭终端,而是采用
exit
命令退出,否则程序还是会断 -
nohup
成功运行下面显示的数字为PID,退出并重新回到终端时jobs
命令已经失效,终止程序的话只能使用kill
PID。 - 可以通过
$HOME/nohup.out
文件追踪程序的输出与报错信息
screen
使用screen
工具更加友好,类似的工具还有tmux
。很多linux版本会预先安装screen
工具,可以先查看一下版本(没有的话自行安装一下):
screen --version
Screen version 4.04.00 (GNU) 19-Jun-16
基础操作
- 命令行输入
screen
运行(可能会弹出用户协议,按enter
或space
键跳过) - 运行想要执行的程序
- 通过快捷键
ctrl+a
d
来分离session - 使用
screen -r
回到最近的session
注意:
- 可以使用
screen -S session_name
创建一个命名的session - 如果有多个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
- 如果想要终止一个session,使用
screen -r
回到那个session,使用快捷键ctrl+a
k
,输入y
确认 - 其它快捷键操作可以在screen session内通过快捷键
ctrl+a
?
查看
参考
[1]. https://linuxize.com/post/how-to-use-linux-screen/
[2]. https://askubuntu.com/questions/356006/kill-a-screen-session
网友评论