리눅스에서 현재 실행중인 프로그램을 유지한 채로 ssh 로그아웃하기 리눅스

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

원격의 리눅스 서버에 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



핑백

덧글

  • 고라 2014/12/03 09:43 # 삭제 답글

    좋은 정보 감사합니다. tmux나 screen을 사용하고 있었는데, 해당 방법도 한번 테스트 해봐야겠네요.
  • 반달가면 2014/12/03 23:27 #

    아 네. 편한 쪽으로 적당히 선택하시면 될 듯합니다.
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

39703
2864
1813372

ad_widget_2