원격 시스템에서 SSH를 사용하여 백그라운드로 명령을 보내는 방법

원격 시스템에서 SSH를 사용하여 백그라운드로 명령을 보내는 방법

ssh다음과 같이 &를 사용하여 원격 시스템에서 포트를 열려고 합니다 netcat.

ssh [email protected] 'netcat -l 7777 &'

하지만 디스플레이 출력을 기다리며 백그라운드로 들어가지는 않습니다!
나는 nohup이것을 이전에 시도했지만 netcat동일한 결과를 얻었습니다.

netcatSSH를 사용하여 원격 시스템에서 백그라운드로 실행하려면 어떻게 해야 합니까 ?

답변1

다음을 사용할 수 있습니다.

ssh -f [email protected] "sh -c 'netcat -l 7777 > /dev/null 2>&1 &'"

확인하다이 스레드.

답변2

공식 버전은 다른 답변에서 언급한 것처럼 모든 쉘 마법 없이 전체 연결을 배경으로 하는 -fswitch to 를 사용하는 것입니다.ssh

-f

명령이 실행되기 전에 SSH에 백그라운드로 들어가도록 요청합니다. 이는 ssh에 비밀번호나 패스프레이즈가 필요하지만 사용자가 이를 백그라운드에서 실행하기를 원하는 경우에 유용합니다. 이는 -n을 의미합니다. 원격 사이트에서 X11 프로그램을 시작하는 권장 방법은 ssh -f host xterm과 같은 명령을 사용하는 것입니다.

ExitOnForwardFailure 구성 옵션이 "yes"로 설정된 경우 -f로 시작된 클라이언트는 모든 원격 포트 전달이 백그라운드에 배치되기 전에 성공적으로 설정될 때까지 기다립니다.

관련 정보