在NGS基礎(chǔ):測(cè)序原始數(shù)據(jù)下載一文中提到可以使用SRA-toolkit中的命令fastq-dump從NCBI下載原始測(cè)序數(shù)據(jù),命令如下。
nohup fastq-dump -v –split-3 –gzip SRR5908360 &nohup fastq-dump -v –split-3 –gzip SRR5908361 &
這個(gè)代碼,給我們4個(gè)提示:
言歸正傳,通常我們運(yùn)行程序前,會(huì)有個(gè)預(yù)判,如前面那個(gè)例子,運(yùn)行時(shí)間比較長(zhǎng),會(huì)使用nohup 我的命令 &的形式進(jìn)行運(yùn)行,從而保證程序不受網(wǎng)絡(luò)或終端異常退出的影響。
但有時(shí)也會(huì)有誤判,如沒想到某個(gè)程序運(yùn)行了半個(gè)小時(shí)還沒結(jié)束,或數(shù)據(jù)傳輸時(shí)網(wǎng)太慢,需要傳輸很久,這時(shí)怎么辦?中止程序,然后加上nohup再從頭運(yùn)行?還是有更好的辦法?
下面看這個(gè)例子:馬上要去吃午飯了,把文件同步到另一個(gè)服務(wù)器,飯后回來繼續(xù)操作:
ysx@ehbio:~/test/Bigwig$ rsync -av * [email protected]:/[email protected]’s password:sending incremental file listtest1Y_DK10.bw
輸入密碼后,發(fā)現(xiàn)同步速度太慢了,1分鐘只同步了1個(gè)文件,后面還有99個(gè)文件,待會(huì)離開后,如果網(wǎng)斷了,終端退出,程序終止怎么辦?同步不能完成,飯后怎么愉快的工作?
還好我們有下面的方案,一步步跟著操作,補(bǔ)救一下。
第一步,按ctrl+z把程序掛起,操作后屏幕會(huì)出現(xiàn)如下提示([1]中的1表示命令的作業(yè)號(hào),后面會(huì)用到):
^Z[1]+ 已停止 rsync -av * [email protected]:/tmp
第二步(可選),用jobs命令查看下任務(wù)狀態(tài),跟剛才的屏幕提示一致,程序被暫時(shí)終止,作業(yè)號(hào)還是1:
ysx@ehbio:~/test/Bigwig$ jobs[1]+ 已停止 rsync -av * [email protected]:/tmp
第三步,使用bg %1命令把作業(yè)號(hào)為1的任務(wù)放入后臺(tái),并從停止?fàn)顟B(tài)變?yōu)檫\(yùn)行狀態(tài),相當(dāng)于加了&后接著運(yùn)行。再用jobs查看,任務(wù)狀態(tài)變成了運(yùn)行中,這一步很關(guān)鍵。如果沒有運(yùn)行bg %1則程序處于停止?fàn)顟B(tài),一直不會(huì)運(yùn)行,吃幾頓飯都不會(huì)運(yùn)行。
ysx@ehbio:~/test/Bigwig$ bg %1[1]+ rsync -av * [email protected]:/tmp &ysx@ehbio:~/test/Bigwig$ jobs[1]+ 運(yùn)行中 rsync -av * [email protected]:/tmp &
第四步,運(yùn)行disown -h %1,表示在終端關(guān)閉時(shí)不對(duì)作業(yè)號(hào)為1的程序發(fā)送終止信號(hào),外部因素將不影響程序的運(yùn)行。通過ps命令查看下任務(wù)進(jìn)程 (可選)。
ysx@ehbio:~/test/Bigwig$ disown -h %1ysx@ehbio:~/test/Bigwig$ ps -auwx | grep ‘rsync’ysx 18214 0.0 0.0 117844 1720 ? S 09:43 0:01 rsync -av *.bw [email protected]:/tmpysx 18215 0.1 0.0 182376 8360 ? S 09:43 0:04 ssh -l ysx 46.93.19.14 rsync –server -vlogDtpre.iLsfxC . /tmpysx 18340 0.0 0.0 112724 984 pts/1 S+ 10:17 0:00 grep –color=auto rsync
通過以上4步就完成了對(duì)這次操作的事后補(bǔ)救。以后遇到同類問題,試一試這個(gè)新方案吧!
同時(shí)還有5點(diǎn)提示: