명령 출력을 기반으로 스크립트를 실행하는 방법

명령 출력을 기반으로 스크립트를 실행하는 방법

Centos 서버의 특정 포트에서 실행 중인 프로세스를 계속 유지하는 크론 작업을 설정하려고 합니다.

이전 논의를 바탕으로 cron 작업에서 호출할 다음 스크립트를 생각해냈습니다.

#!/bin/bash
opt="$(lsof -i tcp:9090| awk 'NR!=1 {print $2}')"
echo $opt
if [ -z "$opt" ]
then
    # nohup npm start & 1>/dev/null 2>/dev/null &
    echo "App Restarted" | mail -s "App is restarted"  "myemail"
fi

이는 변수 출력의 값에 관계없이 트리거되며 여기서 무엇이 잘못되었는지는 확실하지 않습니다.

답변1

#assign output of a command to a variable
output="$(command)"

#test variable to see if empty
if [ -z "$output" ]
then
   #do something
   a_command
fi

관련 정보