Foreground / Background

한준수·2023년 6월 18일

Linux

목록 보기
2/10

📖 포그라운드 작업

📌 포그라운드 프로세스

사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 포그라운드 방식으로 처리되는 프로세스

이런 방식을 작업 제어에서는 포그라운드 작업이라고 한다.

  • 예시
sleep 100  -> 포그라운드 작업
			  sleep 명령이 끝날 때까지 기다려야 한다.

📖백그라운드 작업

📌백그라운드 프로세스

명령을 실행하면 명령의 처리가 끝나는 것과 관계 없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속할 수 있는 프로세스

이런 방식을 작업 제어에서는 백그라운드 작업이라고 한다.

명령어 뒤에 & 를 붙여 실행하면 백그라운드 작업이 된다.

  • 예시
sleep 100 & - > 백그라운드 작업
				바로 다른 명령어 실행 가능

📖 작업제어

  • 작업 제어는 작업 전환과 작업 일시 중지, 작업 종료를 의미한다.
  • 작업 전환 : 포그라운드 작업 -> 백그라운드 작업 / 백그라운드 -> 포그라운드 작업으로 전환
  • 작업 일시 중지 : 작업을 잠시 중단
  • 작업 종료 : 프로세스를 종료하는 것처럼 작업을 종료

📌 작업 목록 보기

명령어 jobs를 통해 백그라운드 작업을 모두 볼수 있으며, 특정 작업 번호를 지정하면 해당 작업의 정보만 보여준다.

  • 형식
jobs [%작업 번호]

📌작업 전환하기

Ctrl+z -> 포그라운드 작업을 정지함(종료가 아닌 잠시 중단)

bg [%작업 번호]  -> 작업 번호가 지시하는 작업을 백그라운드 작업으로 전환

fg [%작업 번호]  -> 얘는 포그라운드로 전환시킴

Ctrl+c -> 포그라운드 작업 종료

kill --> 백그라운드 작업 종료

📌 작업 종료하기

✍ 포그라운드 작업 종료

포그라운드 작업은 Ctrl + c 를 입력하면 ^C 출력과 함께 대부분 종료된다

✍ 백그라운드 작업 종료

백그라운드 작업은 kill 명령으로 강제 종료 해야한다

kill -9 PID 또는 %작업번호

📖 작업 예약

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

  • 정해진 시간에 한 번만 수행
  • 정해진 시간에 반복수행

📌 정해진 시간에 한 번 실행 - at

예약한 명령을 저해진 시간에 실행해준다.

  • 형식
at [옵션] 시간
  • 옵션
    • -ㅣ(ist) : 현재 실행 중인 명령의 전체 목록을 출력한다.(atq 명령과 동일)
    • -r (eboot) : 작업번호 - 현재 실행 대기 중인 명령중 해당 작업 번호를 삭제한다.(atrm)과 동일함
    • -m (ail) : 출력 결과가 없더라도 작업이 완료되면 사용자에게 메일로 알려줌
    • -f (ile) : 표준 입력 대신 실행할 명령을 파일로 지정한다

📌 at 명령 설치

at 명령어를 사용하려면 아래 명령어를 이용하여 설치해야 한다.

sudo apt-get install at

📌 at 명령하기

at 명령으로 정해진 시간에 명령을 실행하도록 하려면 at 명령 뒤에 시간을 명시해야 한다.

at 07:00 pm

# at> 실행할 명령을 지정
at> /bin/ls -l ~ubuntu > ~ubuntu/at.out
# Ctrl+d 로 종료하면 아래와 같이 출력 되면 예약을 완료하게 된다.
at> <EOT>

✍ 시간을 지정하는 형식

  • at 4pm + 3 days : 지금부터 3일 후 오후 4시에 작업 수행
  • at 10am jul 31 : 7월31일 오전 10시에 작업 수행
  • at 1am tomorrow : 내일 오전 1시에 작업을 수행
  • at 10:00am today : 오늘 오전 10시에 작업 수행

📌 at 작업 파일 확인하기

daemon 그룹의 사용자는
/var/spool/cron/atjobs 디렉터리에서 내용 확인이 가능하다.

sudo ls -l /var/spool/cron/atjobs

⌨ at 작업 제어

# at 작업 목록 확인 -l 옵션, atq
at -l
atq

# at 작업 삭제 -d 옵션, atrm
at -d 작업 번호
atrm 작업번호

📌 정해진 시간에 반복 실행 - crontab (중요)

✍사용자의 crontab 파일을 관리

  • 형식
crontab [-u 사용자 ID ] [옵션] [파일]
  • 옵션

    • -e : 사용자의 crontab 파일을 편집
    • -ㅣ : crontab 파일 목록 출력
    • -r : crontab 파일 삭제
  • crontab 파일 형식

    분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0~6) 작업 내용

✍ crontab 파일 생성하고 편집하기 - crontab -e

  • crontab 편집기는 기본적으로 EDITOR 환경 변수에 지정딘 편집기를 사용한다.
EDITOR=vi;export EDITOR
  • crontab -e 명령으로 편집한 파일을 저장하면 자동적으로 /var/spool/cron/crontabs 디렉터리에 사용자 이름으로 생성
crontab -u ubuntu -e

30 23 1 * * /bin/ls -l ~ubuntu > ~ubuntu/cron.out


sudo ls -l /var/spool/cron/crontabs

✍ crontab 파일 내용 확인하기

crontab -l

✍ crontab 파일 삭제하기

crontab -r

0개의 댓글