```bash

screen -S [sessionname]    // session 생성 및 진입

```

새로운 session에서 프로세스 실행하면 SSH 끊어도 생성한 session과 프로세스가 계속 실행된다.

```bash

Ctrl-a, d || screen -d    // session 실행은 유지하면서 원래 shell로 나가기

```

----------- SSH 접속 종료 -----------

. . . . . . . . . . . . . . . . . . . . . . . . .

----------- 다시 SSH 접속 -----------

```bash

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 목록 및 선택 ``c Ctrl+a, "``

새 windows 만들기 ``c Ctrl+a, c``

windows로 이동 ``c Ctrl+a, <num>``

 

이미 실행했을 때

  1. [Ctrl + z]를 눌러서 해당 프로그램을 정지(pause)시킨 후 shell로 돌아간다.
  2. `` bg %{id}`` 명령어를 쳐서 정지 상태의 해당 프로그램을 background에서 실행시킨다.
  3. `` disown -h`` 명령어를 쳐서 ssh 연결이 끊어져도 해당 프로세스가 돌아가도록 만든다.

 

 

 

백그라운드, 포그라운드

쉘에서 빠져 나와도 작업 계속 진행하도록 하기
```bash
$ screen <command>
$ nohup  <command> [&]
```
 
둘 다 안된다면? 그냥 bg 실행한 다음 disown하면 된다.
백그라운드 작업으로 돌리기
```bash
$ <command> &
 
    또는 이미 fg에서 실행되고 있는 작업이라면
(ctrl + z)
$ bg [작업번호]      이렇게 해야 Stop되었던 작업이 bg에서 이어서 실행된다.
 
    disown으로 끊어주어 shell 종료 시에도 작업이 진행될 수 있도록 설정
$ disown [%작업번호] [-a]
```
 
백그라운드 작업 확인

```

jobs           // 백그라운드 작업 확인

fg [작업번호]    // 포그라운드로 작업 재개

bg [작업번호]    // 백그라운드로 작업 재개

```

 

 

'OS > LINUX & UNIX' 카테고리의 다른 글

shell prompt (bash, Oh My Zsh)  (0) 2020.01.10
바이너리를 쉘 명령어로 등록하기 (+ 버전 관리, 멀티 패키지)  (0) 2019.05.14
gcc options  (2) 2017.10.01
libc 버전 문제  (0) 2017.07.23
SSH Server 설정  (0) 2017.05.22