yum install screen
#启动screen
screen
#创建新窗口
Ctrl + a c
#切换窗口
Ctrl + a n
#切换到上一个窗口:
Ctrl + a p
#查看自己已经开设的窗口
screen -ls
#切换到指定窗口:
Ctrl + a 数字
分离窗口
#分离一个窗口,但不退出并保持其运行:
Ctrl + a d
重新连接到一个已分离的窗口:
screen -r
#如果有多个分离的窗口,可以指定编号:
screen -r <窗口编号>
结束窗口
exit
#或使用以下快捷键:
Ctrl + a k
结束Screen,结束所有窗口并退出Screen:
Ctrl + a \
以上是Screen的基本使用方法,可根据需要进一步了解Screen的高级功能和参数。
screen 后台运行程序时需要screen服务一直运行,screen被kill掉则其他窗口都会被终止
## nohup命令用于在后台运行命令
nohup命令使用其实比screen更简单,没有其他多余的依赖的操作,也不用多个窗口切换,只需要按照正常命令运行方式在以前以后加上nohup 和 & 即可。而且nohup运行的后台程序不依赖任何远程连接服务,不用安装任何管理软件,即使断开ssh链接,远程程序照样运行,直到运行程序退出。
其中,COMMAND是要运行的命令。& 表示让命令在后台运行。
nohup COMMAND &
#运行nohup命令后,输出会被重定向到一个名为nohup.out的文件中。
###如果想指定输出文件名,可以使用-O选项:
nohup COMMAND -O FILENAME &
另外,nohup也提供了一个选项-n,可以将输出直接发送到标准输出,而不是重定向到文件中:
nohup COMMAND -n &
## nohup实际操作(推荐)
##nohup运行自己的命令
nohup diamond blastp --query sample.fasta -d nr -e 0.00001 -o blast.out >dmndblast.log 2>&1 &
####上面命令中除了 nohup 2>&1 & 这个以外其他的都是自己原先直接运行的命令,简单吧。
####想实时监控程序运行情况也很简单直接使用下面命令:
tail -f dmndblast.log
####前面 >dmndblast.log 就是说明我们要将日志输入到这个文件中, 后面的 2>&1 & 则指的是将屏幕所有输出都放入日志。 如果没有指定日志文件,会在当前目录下直接生成一个nohup.out文件。多个nohup同时运行的时候就容易乱了,所以还是指定日志文件名才好。
#####指定日志文件的 > 符号有可能会与原有命令相冲突,要解决这个问题其实很简单,将命令包装成脚本文件,这样会形成两个进程,各负其责。
#如下面本身就有一个输出,如果直接使用nohup 和 > 指定日志文件就会出乱了。
metaphlan f_1.fastq,f_2.fastq --bowtie2out f.bowtie2.bz2 --nproc 60 --input_type fastq >f_mtphlan.txt
#因此可以这样写一个sh脚本,然后使用nohup运行脚本,这样程序的输出文件和屏幕输出及错误日志就分开了。
vim mtpln.sh
metaphlan f_1.fastq,f_2.fastq --bowtie2out f.bowtie2.bz2 --nproc 60 --input_type fastq >f_mtphlan.txt
#nohup 运行sh脚本
nohup sh mtphln.sh >mtphln.log 2>&1 &
#这样运行后,mtphln.log专门负责运行和错误日志文件了, 而脚本里面的 f_mtphlan.txt就成了命令原先所需要输出的结果。
## 使用脚本运行任务优势



**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK
有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK