Bash 스크립트에서 서비스를 다시 시작하는 방법은 무엇입니까?

Bash 스크립트에서 서비스를 다시 시작하는 방법은 무엇입니까?

내 FTP 서버에 로그를 업로드하기 위해 짧은 스크립트를 작성했습니다. rsyslog를 다시 시작해야 하는 마지막 줄을 제외한 모든 항목을 무시할 수 있습니다. 명령줄에서 명령을 실행하면 제대로 작동하지만 스크립트 파일 내에서는 작동하지 않습니다. 누구든지 도와줄 수 있나요?

#!/bin/bash


mv /var/log/rtx8660.log /home/vocovo/RTX8660_$(date +"%Y-%m-%d-%H_%M").log

touch /var/log/rtx8660.log

 cd /home/vocovo


  FTPLOG=/tmp/ftplogfile
  ftp -inv <<! > $FTPLOG
  open SERVER
  user USER PASS
  cd /Wickes_Test
  prompt
  mput RTX*
  close
  quit
  !

 FTP_SUCCESS_MSG="226 Transfer complete"
 if fgrep "$FTP_SUCCESS_MSG" $FTPLOG ;then
 echo "ftp OK"
 rm RTX*
 else
 echo "ftp Error: "$OUT
 fi
 exit 0




 service rsyslog restart

답변1

마지막 줄은 이전에 스크립트를 종료했기 때문에 실행되지 않습니다.

exit 0

스크립트의 마지막 줄이어야 합니다.

답변2

어떤 Debian 버전인지 언급하지 않았지만 init.d에 전달된 버전을 사용한다고 가정하면 다음을 시도해 볼 수 있습니다.

/etc/init.d/rsyslog restart

루트로 실행하는 것을 잊지 마세요.

관련 정보