SSH에서 마지막 백그라운드 프로세스의 PID를 얻는 방법

SSH에서 마지막 백그라운드 프로세스의 PID를 얻는 방법

내 쉘 스크립트는 SSH를 통해 실행됩니다.

ssh -i mycert.pem [email protected] <<SSHBLOCK
pm2 logs --lines 100 &
pid=$!
sleep 3
kill $pid
SSHBLOCK

스크립트는 로컬 서버에서 예상대로 작동합니다(sshblock에 래핑되지 않음). 하지만 원격 서버에서 로그를 가져와야 할 경우 $pid는 비어 있습니다. 왜 $! 위의 SSHBLOCK에서 사용할 때 비어 있습니까?

답변1

변수를 원격으로 확장하려면 따옴표 '' 또는 이스케이프 \를 사용해야 합니다. 따라서 여기 문서를 사용 <<'SSHBLOCK'하거나<<\SSHBLOCK

관련 정보