SSH 접속 끊어도 프로세스 돌아가도록 하기 - screen, disown, 백그라운드 작업
1
screen -S [sessionname] // session 생성 및 진입
새로운 session에서 프로세스 실행하면 SSH 끊어도 생성한 session과 프로세스가 계속 실행된다.
1
Ctrl-a, d || screen -d // session 실행은 유지하면서 원래 shell로 나가기
———– SSH 접속 종료 ———– . . . . . . . . . . . . . . . . . . . . . . . . . ———– 다시 SSH 접속 ———–
1
2
3
4
screen -ls // session list 출력
screen -r [[pid.]tty[.host]] // 다시 session으로 되돌아가서 작업 결과 확인
screen -x [session] // 간혹 -r 안될 때
exit || Ctrl-a, \ // windows 종료 -> session 종료 -> 기본 shell로 나감
- session을 여러 개 열 수 있음.
- session 하위에 여러 windows를 둘 수 있음.
- session이 종료되면 하위 windows 작업이 모두 종료됨.
- windows가 모두 종료되면 session도 종료됨. windows 목록 및 선택
Ctrl+a, "
새 windows 만들기 Ctrl+a, c
windows로 이동 Ctrl+a, <num>
이미 실행했을 때
- [Ctrl + z]를 눌러서 해당 프로그램을 정지(pause)시킨 후 shell로 돌아간다.
bg %{id}
명령어를 쳐서 정지 상태의 해당 프로그램을 background에서 실행시킨다.disown -h
명령어를 쳐서 ssh 연결이 끊어져도 해당 프로세스가 돌아가도록 만든다.
백그라운드, 포그라운드
쉘에서 빠져 나와도 작업 계속 진행하도록 하기
1
2
$ screen <command>
$ nohup <command> [&]
둘 다 안된다면? 그냥 bg 실행한 다음 disown하면 된다. 백그라운드 작업으로 돌리기
1
2
3
4
5
6
$ <command> &
또는 이미 fg에서 실행되고 있는 작업이라면
(ctrl + z)
$ bg [작업번호] 이렇게 해야 Stop되었던 작업이 bg에서 이어서 실행된다.
disown으로 끊어주어 shell 종료 시에도 작업이 진행될 수 있도록 설정
$ disown [%작업번호] [-a]
백그라운드 작업 확인
1
2
3
4
jobs // 백그라운드 작업 확인
fg [작업번호] // 포그라운드로 작업 재개
bg [작업번호] // 백그라운드로 작업 재개
This post is licensed under CC BY 4.0 by the author.