linux下任务提交以及如何后台运行任务

有时候 我讲解后台提交任务,一般都要讲半个小时,有时候讲一百遍也不能要求所有人记住每个字眼,因此我写下来这篇博文,希望更多的同行者可以复习并也可以通过博文来理解并解决你的困扰!

登录你的服务器或mac的终端

任务投递步骤

  1. 核查软件是否安装,能否--help
  2. 参数用法是否正确,查询一下参数的具体含义,根据--help翻译英文
  3. 检查输入文件路径
  4. 核查输出文件路径
  5. 提交任务,如有有报错,解决报错在投递任务
  6. 查看任务是否已经在进程上运行着
  7. 查看结果路径,是否运行出内容。有的命令不会那么快运行出结果
    备注:很多事情,这个只是用来排除疑难杂症的问题的,因为你有经验了后,就能看懂很多报错,就能一下子想到出错地方,但是如果你初学的话,尤其第一次投递一个软件的任务时,可以试试这种方法,他能帮你排除掉90%的报错问题~

任务直接提交

  • 这里不再赘述,conda安装软件sra-tools,请查看我的博文,故直接提交命令
  • 对于初学者,一般是这样提交的,直接在登录节点投递任务;
  • 但是对于一个集群,我们是不会在登录节点投递任务的,因为我们有很多专门跑任务的节点。
  • 那么如果你只能直接投递任务了,下面就是一个简单的例子
source activate rna
prefetch SRR1039510 -O ~

2019-04-11T04:31:32 prefetch.2.9.1: 1) Downloading 'SRR1039510'...
2019-04-11T04:31:32 prefetch.2.9.1:  Downloading via fasp...
SRR1039510                                      
2019-04-11T04:42:43 prefetch.2.9.1:  fasp download succeed
2019-04-11T04:42:43 prefetch.2.9.1: 1) 'SRR1039510' was downloaded successfully

ls -lh  ~/*sra
-rw-r--r-- 1 qmcui qmcui 1.6G Nov 27  2013 /home/qmcui/SRR1039510.sra

任务的下载还是很快,11分钟下载结束,但是这十一分钟内你什么事情都做不了。得重新开一个窗口。
运行过程如图:


下载过程

下载结果

任务提交后,只能等待任务的结束,你才能输入命令,否则提交的任务还在运行的时候,你发现你输入什么都没反应。

重点是,这种情况下运行的任务会因为你网络掉线、服务器掉线、xshell/终端关闭、电脑关闭等突发情况而任务被终止

因此我们希望任务运行时被投递出去,被投递到后台运行,然后很开心的关电脑去睡觉

任务后台提交

后台任务通常用nohup ... &

source activate rna

nohup prefetch  SRR1039511 -O ~ &
# 按enter
# 后台提交任务后,命令行就被立刻返回了
# 可以再做别的事情~

ps -ef|grep qmcui|grep prefetch
# 查看qmcui用户提交的所有任务是ps -ef|grep qmcui

cat nohup.out 
后台提交prefetch

后台任务必须保存日志信息

但你把任务提交到后台后,运行的提示信息,如果你没有保存、重定向的话,自然也就没有啦。那么如果提交到后台的任务报错了,你就需要报错信息,所以必须看到这样的报错原因,才能准确定向,到底哪里出问题啦,对吧!
因此捕获报错信息很重要!!!我们需要将后台运行任务的正确提示还是报错信息都要保存起来

所以上面的任务就会变形为:

prefetch  SRR1039510 -O ~ 1>SRR1039510.download.log 2>&1 &
prefetch  SRR1039511 -O ~ 1>SRR1039511.download.log 2>&1 &
prefetch  SRR1039512 -O ~ 1>SRR1039512.download.log 2>&1 &
prefetch  SRR1039513 -O ~ 1>SRR1039513.download.log 2>&1 &
prefetch  SRR1039514 -O ~ 1>SRR1039514.download.log 2>&1 &

大家尝试运行,并查看任务是否投递成功,别忘了ps -ef|grep qmuci;匹配自己的用户名即可哦!学习:https://www.jianshu.com/p/dee6db5afeff

循环提交任务

如果将任务循环起来呢,再来点难度!这里先准备循环前的使用文件,这个文件的怎么准备,是源于循环里你需要用什么数据,文件里就准备什么数据,然后用管道符|传递给循环的代码

# 生成一个如下的SRR_list.txt文件
echo SRR10395{10..14}|sed 's/ /\n/g' >SRR_Acc_List.txt

cat SRR_Acc_List.txt
SRR1039510
SRR1039511
SRR1039512
SRR1039513
SRR1039514

运行示例:


# 理解循环结构
# 这里我没投递,先写了echo "即将投递到服务器上的命令"
cat SRR_Acc_List.txt |while read id;do echo "prefetch  $id -O ~ 1>$id.download.log 2>&1";done
prefetch  SRR1039510 -O ~ 1>SRR1039510.download.log 2>&1
prefetch  SRR1039511 -O ~ 1>SRR1039511.download.log 2>&1
prefetch  SRR1039512 -O ~ 1>SRR1039512.download.log 2>&1
prefetch  SRR1039513 -O ~ 1>SRR1039513.download.log 2>&1
prefetch  SRR1039514 -O ~ 1>SRR1039514.download.log 2>&1
# 查看这些内容是不是你要投递的

# 循环投递任务:
cat SRR_Acc_List.txt |while read id;do prefetch  $id -O ~ 1>$id.download.log 2>&1;done

循环后台提交任务

尝试了前面循环提交任务,那循环的任务怎么投递后台?

# 通过测试cat SRR_Acc_List.txt |while read id;do prefetch  $id -O ~ 1>$id.download.log 2>&1;done循环语句没错
然后写进去一个.sh文本

cat >prefetch.sh
cat SRR_Acc_List.txt |while read id;do prefetch  $id -O ~ 1>$id.download.log 2>&1;done

nohup bash prefetch.sh &
# 即把任务循环投递到后台~

写在最后

虽然第一次学起来有点难度,其实每个人但凡需要学linux投递任务的,这个知识点都是不可避免的,慢慢理解,反正不能躲避,就正面迎击吧

敲重点

  • 其实把任务放在后台最重要的符号是&。
  • 不要再循环的do代码的后面里放入&,你会死很惨,慢慢你就理解啦。
  • 任务投递出去,千万不要以为就万事大吉了,因为还有查看任务是不是真的投递上了。
  • 等你学会后台提交任务,你就可以学习怎么写流程了。
  • 1> 1.log 捕获一种输出,2> 2.log有捕获一种输出。如果想理解清楚,运行下面代码
find / -name '*gz'

find / -name '*gz' 2>~/error.txt

find / -name '*gz' 1>~/result.txt
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容