리눅스2023. 4. 18. 18:10

반달가면 이글루에서 백업 - http://bahndal.egloos.com/528463

 

기본적인 내용이지만, 그래도 정리해 두기로.

원격의 리눅스 서버에 ssh 접속해서 열심히 작업을 하다가, 집에 갈 시간이 다 되어서 로그아웃을 해야 하는데 아직 프로세스가 끝나지 않았을 경우에 해당 프로세스를 실행중인 상태로 남겨두기 위한 방법이다.

처음부터 백그라운드(background) 프로세스로 실행했다면 좋았을 테지만, 오래 걸릴 것을 예상치 못하고  본의 아니게 늦어지는 경우도 생기기 마련이다.

일단 ctrl+z 키를 눌러서 포그라운드(foreground)에서 실행중인 프로세스를 보류한 후, bg 명령으로 백그라운드로 전환한다. 그리고 disown 명령을 입력해서 작업에 대한 소유권을 ssh 세션에서 빼앗은 후에 로그아웃하자.

# my_command라는 프로세스 실행
my_command
# 시간이 없음. ctrl+z 눌러서 보류
[1]+ Stopped  my_command
# 대괄호 안에 있는 번호의 작업을 백그라운으로 전환
bg 1

[1]+ my_command &

# 작업의 소유권을 shell session에서 해제
disown
# 집에 가자. 로그아웃 (... 그런다고 갈 수 있을까;;)
exit

혹시 이전에 백그라운드로 실행해 둔 작업이 더 있다면 jobs 명령을 이용해서 확인하면 된다. disown 명령을 사용할 때는 -a 옵션을 이용해서 모든 작업에 대한 소유권을 해제.

# 작업 목록 확인
jobs
# 전체 작업의 소유권을 현재 shell에서 해제(-a 옵션)
disown -a
# 로그아웃
exit

728x90
Posted by 반달가면