Linux下程序后台运行程序或脚本的方式-脚本执行-不建议screen_linux执行脚本后台运行

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就成了命令原先所需要输出的结果。


## 使用脚本运行任务优势




![img](https://img-blog.csdnimg.cn/img_convert/6d0d695b58598fd555716352010101c2.png)
![img](https://img-blog.csdnimg.cn/img_convert/c9334a3083e0d64a08a554a47b65d3cf.png)
![img](https://img-blog.csdnimg.cn/img_convert/76d31dec8dedb5655999436056656d3a.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK
有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK
  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值