start-stop-daemon not running

117 views Asked by At

I have a script file using start-stop-daemon:

trap "" 1
(
    echo "INFO Starting $BinName application"
    cd ${APPLICATION_ROOT}
    if [ -e ${DEVOUT} ]; then
        mv ${DEVOUT} ${DEVOUTOLD}
    fi
    if [ -e ${DEVERR} ]; then
        mv ${DEVERR} ${DEVERROLD}
    fi
    if [ -e ${VALGRIND_LOG} ]; then
        mv ${VALGRIND_LOG} ${VALGRIND_LOG_OLD}
    fi
    # rm ${VALGRIND_LOG}
    HASHCODE=$(sha1sum ${APPLICATION_BIN}/${BinName}|cut -b0-40)
    if [ ! -z "$VALGRIND_ENABLE" ]; then
        VALGRIND_CMD="$VALGRIND --log-file=$VALGRIND_LOG"
    fi
    start-stop-daemon -S -b -m -p ${PidFileName} -c service:c10 --startas /bin/bash -- -c "/usr/bin/nohup $VALGRIND_CMD ${APPLICATION_BIN}/${BinName} -j 8019 -O -H $HASHCODE 2>${DEVERR}  > ${DEVOUT}  &"
)
sleep 1
pid=$(mypidof $BinName)
echo $pid > $PidFileName
if [ X$pid !=  "X" ]; then
    RETVAL=0;
    echo "INFO $BinName running with pid=${pid}"
else
    RETVAL=11;
    echo "ERROR Start $BinName failed !!!"
fi  

I want to execute the script from C++ code. I tried to use system()/popen()/execv() but start-stop-daemon doesn't run (process it called is not running). I don't know if I have missed anything to do.

If I run the script file directly, start-stop-daemon works properly.

0

There are 0 answers