Você tem processo em segundo plano e deseja redirecionar a saída para um arquivo de log ao mesmo tempo. Você deve fazer isso da seguinte maneira: primeiro, envie stdout para onde deseja ir e, em seguida, envie stderr para o endereço onde a stdout está:
some_cmd > some_file 2>&1 &
seu código deve ser revisado da seguinte forma:
#!/bin/bash
trainingState=1
epoch=50
#URL myspace test
URL="xxxxxx"
nohup python3.6 <arguments> >> help.out 2>&1 &
#processId of xyz
processId=$(pidof python3.6)
#this command executes
curl -X POST -H "Content-Type: application/json" -d '{"markdown" : "### The Training has started !! \n > EPOCS:'"$epoch"'"}' $URL
#while loop also executes but no data to read from file
while [[ $trainingState == 1 ]]; do
if ps -p $processId > /dev/null ; then
echo "training happening"
value=$(tail -n 1 help.out)
curl requests etc .....
else
value=$(tail -n 1 help.out)
echo "training finished"
final curl requests etc .....
trainingState=0
fi
done
Mais: 1 , < href="https://unix.stackexchange.com/questions/74520/can-i-redirect-output-to-a-log-file-and-background-a-process-the-same-time" > 2