Bash rodando em sequência do Cronjob

3
#!/bin/bash
# My first script
sleep 15 & wait
python pythonFileName.py & wait
python pythonFileName.py & wait
python pythonFileName.py & wait

Como faço para esperar que a linha anterior termine a execução antes de passar para a próxima?

Funciona bem quando você chama o arquivo bash diretamente, mas quando chamado do cronjob , ele está executando tudo sem esperar que o anterior termine.

    
por FlyingAtom 25.10.2016 / 04:53

1 resposta

2

Isso funcionará em um após o outro, todos os abaixo são os mesmos:

#!/bin/bash
# My first script
sleep 15 & wait
python pythonFileName.py & wait
python pythonFileName.py & wait
python pythonFileName.py & wait


#!/bin/bash
# My first script
sleep 15 
python pythonFileName.py 
python pythonFileName.py 
python pythonFileName.py 

<Command> & wait Você não vai conseguir nada de especial com isso

& levará o processo em segundo plano

espera fará com que o processo pai aguarde o estado do processo filho ser alterado

UID       PID   PPID
root     28065 28064  0 12:48 ?        00:00:00 /bin/sh -c /bin/bash /home/8zero2/Desktop/b.sh 
root     28067 28065  0 12:48 ?        00:00:00 /bin/bash /home/8zero2/Desktop/b.sh
root     28074 28067  0 12:48 ?        00:00:00 sleep 15


root     28065 28064  0 12:48 ?        00:00:00 /bin/sh -c /bin/bash /home/8zero2/Desktop/b.sh 
root     28067 28065  0 12:48 ?        00:00:00 /bin/bash /home/8zero2/Desktop/b.sh
root     28075 28067  0 12:48 ?        00:00:00 python pythonFileName.py


root     28065 28064  0 12:48 ?        00:00:00 /bin/sh -c /bin/bash /home/8zero2/Desktop/b.sh 
root     28067 28065  0 12:48 ?        00:00:00 /bin/bash /home/8zero2/Desktop/b.sh
root     28077 28067  0 12:48 ?        00:00:00 python pythonFileName.py


root     28065 28064  0 12:48 ?        00:00:00 /bin/sh -c /bin/bash /home/8zero2/Desktop/b.sh 
root     28067 28065  0 12:48 ?        00:00:00 /bin/bash /home/8zero2/Desktop/b.sh
root     28074 28067  0 12:48 ?        00:00:00 python pythonFileName.py

corelate a coluna ppid e pid, você notará a execução sequencial apenas em ambos os casos

    
por 25.10.2016 / 09:29

Tags