![배경 작업](https://linux55.com/image/170466/%EB%B0%B0%EA%B2%BD%20%EC%9E%91%EC%97%85.png)
SSH를 통해 서버에 연결되어 있는데 시간이 오래 걸리는 프로세스를 실행하고 싶습니다. 랩톱 터미널에서 SSH를 사용하여 서버에 연결하고 있는데 랩톱을 종료할 수 있지만 서버에서는 계속 진행 중입니다. 두 대의 별도 컴퓨터이기 때문에 이 작업을 수행할 수 있을 것 같지만 SSH를 통해 수행할 수 있는지 확실하지 않습니다.
답변1
이는 &
다음을 추가하는 것만큼 간단합니다.
bash script.sh &
세션을 종료하거나 터미널을 닫아도 계속 실행됩니다.
또 다른 방법은 명령을 사용 nohup
하고 명령을 실행하는 것입니다. 예를 들어
nohup bash script.sh
더 많은 사용법을 찾아보고 man nohup
팔로우하세요이것비슷한 방향의 질문입니다.
답변2
배경 작업
백그라운드에서 실행
program &
백그라운드에서 실행되며 연결이 끊어진 후에도 계속됩니다. 또한 stdout
로 리디렉션됩니다 ~/nohup.out
.
nohup program &
동일하지만 다른 파일로 리디렉션됨
nohup program > "another file" &
jobs
백그라운드 작업을 보는 데 사용할 수 있는 위 명령을 참고하세요 .
동일하지만 작업 목록에서 제거됨
nohup program > "another file" & disown
영구 세션
gnu screen
및 tmux
를 참조하세요 vnc
. 연결이 끊어졌을 때 세션을 열어둘 수 있습니다.
게누screen
#create a screen session (do this once)
screen -d -m
#attach to the session
screen -x
여러 개의 (이름이 지정된 세션)을 가질 수도 있습니다.
#create a screen session (do this once)
screen -d -m -S a_name
#attach to the session
screen -x -S a_name
내부적으로는 ctrl_a를 사용하여 화면을 제어합니다. ctrl_a ctrl_a ctrl_a를 쉘에 전달하십시오.
가상 네트워크 컨트롤러
#create a vnc session (do this once)
vncserver -from 127.1.0.1 -geometry 1920x1000 :10
#attach to the session (from a remote machine)
ssvnc Vnc+ssh://«user»@«machine-name»:10
모니터를 수정하려면 형상을 변경하고 모니터 번호를 변경하세요.
노트:
로컬 컴퓨터의 누구나 VNC 세션에 연결할 수 있습니다.
적절한 보안이 있는 경우 추가하여 -SecurityTypes None
VNC 보안을 끌 수 있습니다 ssh
.
127.1.0.1
루프백 범위 내. 로컬 컴퓨터의 프로세스만 연결할 수 있습니다. (ssvnc)를 통해 원격으로 연결할 수 있습니다 ssh
. 를 사용하여 nftables
연결할 수 있는 사용자를 제한 할 수 있습니다 127.1.0.1
. 루프백 범위 (약 1,600만 개) 127.0.0.1
에는 많은 주소가 있으므로 각 사용자에게 하나를 할당하고 여전히 무료로 사용할 수 있습니다.127.255.255.254