linux后台进程:
shell的元字符&提供了在后台运行不需要键盘输入的程序的方法。
输入命令后,其后紧跟&字符,该命令就会被送往到linux后台执行,
而终端又可以继续输入下一个命令了。
比如:
sh a.sh &
sh b.sh &
sh c.sh &
这三个命令就会被同时送往linux后台执行,
在这个程度上,认为这三个命令并发执行了。
生信流程中前后不互相影响的命令(就是后面的流程不依赖前面的输出,比如多个fastq文件的统计,多个文件的基因预测)
可以使用多线程的方式进行处理,可以大大的节省时间。
方式:shell 的for循环do与done之间的代码使用{ }&
放在后台执行,
可以加上 wait,前面的都执行完后才会执行wait后的命令。
代码如下:
for num in `seq 1 10`
do
{
sleep 1
echo ${num}
} &
done
wait
# wait 前面后台的线程执行完后,才会执行后面的
echo 'done'