스크립트를 실행하고 파일로 출력하는 함수를 만들고 있습니다. 그런 일이 발생하면 중지를 실행하여 파일을 한 줄씩 읽습니다. 서버가 시작하지 못하면 -9 $ pid를 죽이는 if 조건을 추가하고 싶습니다. 작동하지 않습니다.
function stop_server() {
su -s /bin/bash user /usr/local/server/bin/server list | sed "1,2 d" >>jvms
while IFS="" read -r p || [ -n "$p" ]
do
su -s /bin/bash user /usr/local/server/bin/server stop $p
if [[ $(su -s /bin/bash user /usr/local/server/bin/server stop $p)= 'Server $p stop failed. Check server logs for details.' ]];
then
PID="ps -ef|grep -v grep |grep '$p' | awk '{print $2}'"
kill -9 $PID
fi
done
}
서버 중지 $ p의 결과를 캡처하고 싶습니다. 다음과 같이 할 수 있다고 생각했습니다.
if [ $results = 'Server $p stop failed. Check server logs for details.' ]; then
PID="ps -ef|grep -v grep |grep '$p' | awk '{print $2}'"
kill -9 $PID
fi
조건 전과 스크립트 내부에서 첫 번째 스크립트에서 동일한 작업 "su -s / bin / bash user / usr / local / server / bin / server stop $ p"를 두 번 수행합니다. 의도적인가요?
—
lgeorget