리눅스데브코스 [5주차 - 4]<Process Management>

심우열·2023년 5월 4일
0

1. 포그라운드, 백그라운드 프로세스와 작업 제어

1. 포그라운드 작업

포그라운드 프로세스

  • 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기라뎌야 하는 포그라운드 방식으로 처리되는 프로세스
  • 이를 작업 제어에서는 포그라운드 작업이라고 함

2. 백그라운드 작업

백그라운드 프로세스

  • 명령을 실행하면 명령의 처리가 끝나는 것과 관계없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속 할 수 있음
  • 작업 제어에서는 백그라운드 작업이라고 함

3. 백그라운드 작업과 출력 방향 전환하기

  • 백그라운드로 처리할 때는 주로 출력과 오류 방향 전환을 하여 실행 결과와 오류 메시지를 파일로 저장

4. 작업 제어란?

  • 작업 제어는 작업 전환과 작업 일시 중지, 작업 종료를 의미

1. 작업 전환

  • 포그라운드 작업 -> 백그라운드 작업, 백그라운드 작업 -> 포그라운드 작업

2. 작업 일시 중지

  • 작업을 잠시 중단

3. 작업 종료

  • 프로세스를 종료하는 것 처럼 작업을 종료

4. 작업 목록 보기: jobs

  • 백그라운드 작업을 모두 보여줌
  • 특정 작업 번호를 지정하면 해당 작업의 정보만 보여줌

jobs 명령어의 출력 정보

5. 작업 중지, 전환, 종료

작업 전환 명령어: fg bg + %작업 번호

작업 종료 명령어: ctrl + c (포그라운드), kill + [PID,%작업번호] (백그라운드)

6. 로그아웃 후에도 백그라운드 작업 계속 실행하기 : nohup

  • 로그아웃한 다음에도 작업이 완료될 때 까지 백그라운드 작업을 실행해야 할 경우가 있다
  • 이때 nohup 명령어 사용
  • nohup + 명령 + &
  • nohup 명령에 대한 출력은 기본적으로 nohup.out에 저장됨

2. 작업 에약

1. 특정한 시간에 작업을 수행하도록 예약할 수 있는 두가지 방법

1. 정해진 시간에 한 번만 수행: at + [옵션] + 시간

예약한 명령을 정해진 시간에 실행한다

1. at 명령은 설치 필요

sudo apt-get install at
//메일 기능을 사용하기 위해서는 추가 설치 필요
sudo apt-get install mailutils

2. at 명령어 사용법

3. at 작업 파일 확인하기

  • at 명령으로 생성된 작업 파일은 /var/spool/at 디렉터리에 저장
  • daemon 그룹의 사용자만 해당 디렉토리 내용 확인 가능 -> 비추천
ls -l /var/spool/cron/atjobs

4. at 작업 목록 확인하기 : at -l, atq

5. at 작업 삭제하기 : at -d, atrm

  • at 명령으로 설정한 작업이 실행되기 전에 삭제하려면 -d 옵션을 사용해 삭제할 작업 번호를 지정

6. at 명령 사용 제한하기

  1. /etc/at.allow 파일과 /etc/at.deny 파일에는 한줄에 사용자 이름을 하나씩만 기록
  2. /etc/at.allow 파일이 있으면 이 파일에 있는 사용자만 at 명령을 사용할 수 있음, 이 경우 /etc/at.deny 파일은 무시됨
  3. /etc/at.allow 파일이 없으면 /etc/at.deny 파일에 지정된 사용자를 제외한 모든 사용자가 at 명령을 사용 가능
  4. 만약 두 파일 모두 없다면 root만 at 명령 사용 가능
  5. 한 사용자가 두 파일 모두에 속해 있다면 그 사용자는 at 명령 사용가능 -> at.allow의 우선순위가 높다
  6. /etc/at.deny 를 빈 파일로 두면 모든 사용자가 at 명령 사용 가능 -> 초기 설정

2. 정해진 시간에 반복 수행 : crontab [-u userID][옵션] [파일]

  • 사용자의 crontab 파일을 관리

1. crontab 파일의 형식

2. crontab 파일 생성하고 편집하기 : crontab -e

  1. crontab 편집기는 기본적으로 VI, 또는 EDITOR 환경 변수에 지정된 편집기 사용
  2. contab -e 명령으로 편집한 파일을 저장하면 자동적으로 /var/spool/cron/crontabs 디렉토리에 사용자 이름으로 생성됨

3. crontab 파일 내용 확인하기 : crontab -l

4. crontab 파일 삭제하기 : crontab -r

5. crontab 명령 사용 제한하기

  1. /etc/cron.allow, /etc/cron.deny 파일
  2. cron.deny 파일은 기본적으로 있음, cron.allow 파일은 관리자가 만들어야 함
  3. cron.allow 파일의 우선순위가 cron.deny 파일보다 높음
  4. 두 파일이 모두 없다면, root 만 crontab 명령 사용 가능
profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글