![이전 SSH 명령이 완료되기 전에 Bash 실행 명령 [닫기]](https://linux55.com/image/181412/%EC%9D%B4%EC%A0%84%20SSH%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%EC%99%84%EB%A3%8C%EB%90%98%EA%B8%B0%20%EC%A0%84%EC%97%90%20Bash%20%EC%8B%A4%ED%96%89%20%EB%AA%85%EB%A0%B9%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
두 대의 서버에 전원을 공급하는 UPS에 대한 종료 프로토콜을 작성하려고 합니다. 서버 A가 SSH를 통해 서버 B에서 bash 스크립트를 트리거하기를 원합니다. 제가 테스트하고 있는 스크립트는 서버 B를 트리거하는 데는 잘 작동하지만 나머지 스크립트를 진행하기 전에 SSH의 응답을 기다리는 데 문제가 있습니다. 이것은 지금까지 내 서버 A 스크립트입니다.
#!/bin/bash
ssh [email protected] "/bin/bash /opt/shutdown.sh"
sleep 10
echo "start shutdown" | wall
shutdown -p now
독립적으로 실행하려면 첫 번째 줄이 필요한 것 같아요? 몇 가지 검색을 수행하고 nohup
SSH 줄 끝에 추가해 보았습니다. &
나는 또한 사용해 보았지만 screen
운이 없었습니다. ssh 명령을 호출한 후 즉시 스크립트가 계속되도록 하고 싶습니다. 어떤 도움이라도 대단히 감사하겠습니다.
답변1
SSH 사람들에 따르면 :
-f Requests ssh to go to background just before command execution. This is useful if ssh is going to ask
for passwords or passphrases, but the user wants it in the background. This implies -n. The recom‐
mended way to start X11 programs at a remote site is with something like ssh -f host xterm.
나는 그것이 당신의 문제를 해결할 수 있다고 생각합니다. 건배!ssh -f [email protected] "/bin/bash /opt/shutdown.sh"