리눅스(Linux) #9 - 다중 터미널 환경 사용하기

BBANG-JUN·2020년 4월 12일
0

Linux

목록 보기
9/11
post-thumbnail

오늘 하루엔 뭐했니?

그냥 적어봐! LEE렇게!


2020.04.11 LEE'Today_회고록

목차
1. 운영체제와 리눅스의 기초
2. 리눅스 설치
3. 리눅스 둘러보기
4. 터미널에서 리눅스 사용하기
5. 파일과 프로세스
6. 리눅스용 문서편집기
7. 리눅스 각종 서버 프로그램 이해
8. 리눅스 별도 프로그램 설치
9. 다중 터미널 환경 사용하기
10. 로그관리와 반복작업 자동화

9. 다중 터미널 환경 사용하기

이번 9차시에는 백그라운드 프로세스에 대해 배우도록 한다.
백그라운드 프로세스를 다루기 위한 명령어는 &, nohup, screen 등이 있다.
foreground와 background를 비교해보자!

9-1. Background Processing란?

foreground process
사용자가 입력한 명령이 실행되어 결과를 출력 될때까지 기다리는 방식이다.

background process
Foreground 방식은 실행하는 동안 대기를 해야되서 다른 작업을 하지 못하지만, background 방식은 작업 제어가 제공되어 여러 개의 프로세스를 동시에 실행이 가능하다.

리눅스는 기본적으로 멀티프로세싱이기 때문에, 한 쉘에서 명령을 수행하고 백그라운드로 넘기곤 한다.


다음과 같은 명령어들로 넘나든다.

9-2. 백그라운드 실행방법

  • & 명령어
$ [command] & (해당 명령어를 백그라운드에서 실행한다.)

실행 뒤에 나오는 수는 PID라는 프로세스 고유의 ID number이다.
해당 ID를 이용해 kill을 할 수도 있다.

  • jobs
    : 현재 백그라운드에서 실행되고 있는 프로세스의 목록을 볼 수 있다.
    : 리스트는 번호, 상태, 명령어 순으로 나타낸다.
$ jobs
[1]+ Running python ----.py > a.txt & (Running중인 상태)
[1]+ Done (완료가 된상태)

9-3. 포-백그라운드 작업제어

작업 중지
: foreground로 실행되는 프로세스를 중지(Stop)하려면, Ctrl+z

$ [Ctrl+z] 입력
$ fg : 중단된 것이 포그라운드로 재실행
python ----.py > lotte.txt

$ bg : 중단했던 것이 백그라운드로 재실행
[1]+ python-------.py > lotto.txt &

작업 종료
: 백그라운드는 포그라운드의 Ctrl+c가 아닌 kill 명령어를 사용한다.

$ kill [PID] (PID는 ps명령어로 알 수 있다.)

9-4. 다중터미널 환경(screen)

GNU Screen
: 터미널 다중화기(가상 콘솔의 다중화)

Screen 명령어

  • 하나의 터미널에서 여러개의 세션을 쓸 수 있도록한다.
  • 각 세션은 백그라운드로 유지시킬 수 있으며, 접속이 끊겨도 유지됟나.
  • 장시간 프로세스를 원격으로 구동할 때 유리하다.
$ screen [options][command]
-S 세션명 : 세션명으로 시작
-R 세션명 : 기존 세션이 맞는 경우 동작시킴
-D -r 세션명 : 이전 세션이 attach된 상태라면, detach하고 세션을 복원

9-5. 다중터미널 설치순서

// 설치
$ su -
# yum install screen

// 세션 생성
$ screen -S test (test는 세션명이다.)

여기서 유용한 커맨드는

  • Ctrl+A+C : 세션을 바로 생성해준다.
  • Ctrl+A+Space : 빠르게 스크린을 이동시켜준다.

9-6. Screen 명령어

모든 명령어의 시작은 Ctrl+A이다.
유용하게 사용할 수 있는 명령어들만 모아보았다.

  • ctrl+a+c : 새로운 Shell이 생기면서 해당 Shell로 이동
  • ctrl+a+n : 다음 창으로 이동
  • ctrl+a+p : 이전 창으로 이동
  • ctrl+a+숫자 : 숫자에 해당하는 창으로 이동
  • ctrl+a+w : 창리스트 보기
  • ctrl+a+d : 현재 작업을 유지하면서 screen세션에서 빠져나옴, 세션은 종료되지 않는다.
  • ctrl+a+x : 창을 잠금

창과 세션 그리고 로그인의 관계는 다음과 같다.
[Login] - [Screen 1 세션] - [Window A][Window B][Window C]
여기서 세션들이 여러개면 또다른 창들을 만들 수 있는 관계이다.

screen Tip

  • 화면 분할 기능 : ctrl+a, ctrl+s하면 가로로 화면이 분할된다.
  • 복사 붙여넣기 기능 : ctrl+a, ctrl+[ 로 vi모드 진입 후 ctrl+a,ctrl-] 로 붙여넣기를 할 수 있다.
  • 실행이 안된다면 ctrl+a+s로 해보자.

9-7. 바쁜 당신을 위한 요약정리!

Summary

  • 리눅스에서 background process란 프로세스가 배경에서 실행됨을 의미한다.
  • 백그라운드 실행 방법 3가지 : &, nohup, screen
  • 실행된 백그라운드 프로세스는 jobs 명령어를 통해 확인할 수 있음
  • 백그라운드 프로세스를 끌 때는 kill 명령어를 활용
  • 포그라운드 프로세스를 백그라운드로 전환할 때는 bg 명령어를 사용
  • Screen 명령은 세션을 만들고, 해당 세션을 백그라운드로 유지시킬 수 있다.
    (장시간 동작해야하는 프로세스를 원격에서 실행해야 할 때 유용하다.

9차시 Linux 회고록이 끝났습니다!
감사합니다.

기억보단 기록하자! LEE'Today로!

profile
🔥 머릿속으로 생각하지만 말고, 행동으로 보여줘

1개의 댓글