0
Bash ждет сигнала, чтобы закончитьBash скрипт обыкновение начинать с Backgroud после выполнения команды-
Логика: исполнение
- начало Баш скрипт, который должен начать A.php в заднем месте и перенаправить стандартный вывод в лог-файл или/Dev/нуль
- на успех a.php выполнить B.php
- об ошибке выполнения B.php с ошибкой a.php в качестве аргумента
Но, Баш начать A.php и ждать ...
#ps -aux
root 27647 0.0 0.0 13336 652 pts/0 S+ 11:36 0:00 /bin/bash /var/www/scripts/bgluncher.sh -c php /var/scripts/A.php -l /var/log/A.log -p B.php
root 27648 0.7 0.2 332396 87544 pts/0 S+ 11:36 0:02 php /var/scripts/A.php
Баш:
#!/bin/bash
COMM=''
POST_CMD=''
LOG=0
while getopts ":l:c:p:" arg; do
case "${arg}" in
c)
COMM=${OPTARG}
;;
l)
LOG=1
LOG_File=${OPTARG}
;;
p)
POST_CMD=${OPTARG}
;;
esac
done
if [ -z "${COMM}" ]; then
echo `date` ' ERROR: [bgluncher.sh] -c argument is empty ' >> ${LOG_File}
else
if [ ${LOG} -eq 1 ] ; then
${COMM} >> ${LOG_File} && ${POST_CMD} || ${POST_CMD}/error=$2 &
echo $!
else
${COMM} >> /dev/null && ${POST_CMD} || ${POST_CMD}/error=$2 &
echo $!
fi
fi
exit
Быть или не быть и что ошибка я сделал?
Ok! Спасибо! Это была одна из проблем «$?» На самом деле php-скрипты ждут/arg1 = val1/arg2 = val2. Но bash все еще ждет конца A.php и не посылает его в фоновом режиме – Debster