[英]Bash script won't start in background with post-execute-command
重擊等待信號結束
邏輯:
但是,bash啟動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
做還是不做,我犯了什么錯誤?
$2
是第二個命令行參數(php),而不是COMM的退出代碼,請使用$?
為了那個原因。 並且您可能希望在$ {POST_CMD}之后使用空格而不是/; B.php error=2
而不是B.php/error=2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.