Probablemente no sea una buena idea copiar bibliotecas aleatorias. En su lugar, inspeccione el sistema de paquetes para ver si se proporciona una versión de 32 -bits de la biblioteca. RedHat llama a 32 -bits "i686":
# yum whatprovides '*/libgobject-2.0.so.0' | grep i686
glib2-2.54.2-2.el7.i686 : A library of handy utility functions
# yum install glib2.i686
...
Puede ser una mejor idea evitar, si es posible, ejecutar un sistema multilib para reducir la complejidad y reducir las probabilidades de que se acumule yum en un problema de paquete multilib. Esto requeriría volver a compilar todo el software como 64 -bits.
Проблема в том, что вы отправляете процесс gatk в фоновый режим внутри подоболочки:( gatk... & )
. Фоновый процесс не является дочерним элементом этой подоболочки, а не оболочки вашего скрипта, поэтому wait
его не видит и не ждет. Изhelp wait
:
wait: wait [-fn] [id...]
Wait for job completion and return exit status.
Waits for each process identified by an ID, which may be a process ID or a
job specification, and reports its termination status. If ID is not
given, waits for all currently active child processes, and the return
status is zero. If ID is a job specification, waits for all processes
in that job's pipeline.
Если вы измените это на фон всей подоболочки вместо этого (, т. е. ( gatk... ) &
или, что еще лучше, вообще не используйте подоболочку, поскольку здесь она не делает ничего полезного, она будет работать, как и ожидалось:
for i in 1 2 3 4 5 6 7; do
for o in A B D; do
for u in _part1 _part2; do
gatk HaplotypeCaller \
-R /storage/ppl/wentao/GATK_R_index/genome.fa \
-I GATK/MarkDuplicates/ApproachAsortedstettler.bam \
-L chr$i$o$u \
-O GATK/HaplotypeCaller/HaploSample.chr$i$o$u.raw.vcf &
done
done
done