pkill -9 -efx 'dotnet Server.dll'
nohup dotnet Server.dll &> nohup.out &
>>> 변경 후
pkill -9 -efx './Server'
nohup ./Server &> nohup.out &
- 원인 파악
C# 단일 파일 빌드를 적용하기 위해서 기존 프로세스 종료 및 서버 기동 커맨드를 위한 command 작성
SSH Publishers 탭에서 Verbose output in console 를 활성화 시켜서 어느 부분에 문제가 생기는지 확인하기로 했습니다.
- 문제 상황
기존에 단일 파일 빌드가 아니었던 이전 버전에서는 Server.dll 파일이 실행되는 상태에서 Server.dll이 복사되어도 문제 없이 진행이 되었다.
하지만 단일 파일로 빌드 이후 버전에서는 ./Server 파일이 실행되는 상태에서 Server를 복사하면 작업이 중지되는 이슈가 생김
- 해결
실행 파일 복사하는 로그에서 중단이 발생하고 빌드 실패처리가 되는 것을 파악함
복사 전에 실행파일을 미리 종료하고 복사하면 해결 될거라고 상정하고 별도의 Transfer Set를 생성해서 Exec command로 프로세스 종료만 실행
- 새로 추가한 Exec command 예제
function checkCode(){
if [ $1 -eq 0 ]
then
echo "one or more processes matched the criteria"
elif [ $1 -eq 1 ]
then
echo "no processes matched"
elif [ $1 -eq 2 ]
then
echo "syntax error in the command line"
elif [ $1 -eq 3 ]
then
echo "fatal error"
else
echo Return Code : $1
echo UNEXPECTED
fi
}
pkill -9 -efx './Server'
checkCode $?
- 기존 Exec command 예제
nohup ./Server &> nohup.out &
성공적으로 ssh로 배포 성공 (매 실행시 기존 프로세스 종료 후에 새로 실행합니다.)