쉘 스크립트 작성 중 shutting: command not found가 무슨 의미인가요??

morolty의 이미지

구글검색에는 shutdown: command not found만 나오네요...

쉘 스크립트에서

`service ~~~~ start` 로 서비스 스타트 시키려고 할때 나온 오류메시지 입니다.....

감사합니다..

익명 사용자의 이미지

셀스크립트가 어떻게 되어있는지 몰라서 자세한 설명은 힘들겠지만.
shutting같은 메세지가 셀에 명령어로 전달된거 일수도..

morolty의 이미지

function F_CASE_CASE(){
        case $MODULE_NAME in
                NCIA_Agent)
                        `service ncia-agent-dbms $1`
                        `service ncia-agent-web $1`
                        ;;
                NCIA_AgentController)
                        `service ncia-agentcontroller $1`
                        ;;
                NCIA_DataCollector)
                        `service ncia-datacollector $1`
                        ;;
                NCIA_DataManager)
                        `service ncia-datamanager $1`
                        ;;
                *)
                        ;;
        esac
}
 
function F_CASE(){
        case $1 in
                REGIST)
                        `bash $ROOT_HOME/bin/install.sh $ROOT_HOME`
                        ;;
                START)
                        F_CASE_CASE "START"
                        ;;
                STOP)
                        F_CASE_CASE "STOP"
                        ;;
                *)
                        ;;
        esac
}

서비스를 실행시키는 코드구요.. START시에는 잘 되는데 STOP시에는 오류가 나옵니다.

STOP은 /etc/init.d/functions에 있는 killproc 함수 이용하는데 이게 문제인거 같긴 한데 감이 안오네요..

jick의 이미지

`...`를 쓰면 ... 안의 명령을 실행한 다음 그 명령 결과를 식의 값을 돌려줍니다.
이를테면 a=`date` 하면 date 명령의 결과가 a라는 변수에 저장되는 거죠.
앞뒤에 아무 것도 없이 그냥 `...` 하면 ... 내부의 명령을 실행한 다음 그 결과를 돌려받아서, 다시 그게 명령어인 것처럼 실행하려고 하게 됩니다. `echo ls` 해보세요.

아마도 `...`로 묶인 명령어 중 뭔가가 Shutting down blah blah blah... 이런 메시지를 뱉은 것 같습니다. 그러면 셸은 이걸 명령어라고 생각하고 마치 프롬프트에다 Shutting down blah blah...를 친 것처럼 동작하게 되겠죠.

morolty의 이미지

감사합니다!

그리고 죄송합니다만 한가지만 더 여쭙겠습니다...

그렇다면 단지 어떠한 명령을 실행시키기만 할 목적이라면 `` 을 빼고 써야 하는건가요??

코드에서처럼, service 명령어를 이용해서 단지 서비스 스타트만 할 목적 같은 경우에요...