Проверить, запущена ли программа с помощью сценария оболочки bash?

Это пример сценария bash, который проверяет наличие какого-либо запущенного процесса (демона или службы) и выполняет определенные действия (перезагрузка, отправка почты), если такой процесс не запущен.

check_process(){
        # check the args
        if [ "$1" = "" ];
        then
                return 0
        fi

        #PROCESS_NUM => get the process number regarding the given thread name
        PROCESS_NUM='ps -ef | grep "$1" | grep -v "grep" | wc -l'
        # for degbuging...
        $PROCESS_NUM
        if [ $PROCESS_NUM -eq 1 ];
        then
                return 1
        else
                return 0
        fi
}

# Check whether the instance of thread exists:
while [ 1 ] ; do
        echo 'begin checking...'
        check_process "python test_demo.py" # the thread name
        CHECK_RET = $?
        if [ $CHECK_RET -eq 0 ]; # none exist
        then
                # do something...
        fi
        sleep 60
done

Однако это не работает. Я получил "ОШИБКА: вариант мусора". для команды ps . Что не так с этими скриптами? Спасибо!

19
задан Buttle Butkus 27 June 2017 в 19:46
поделиться