본문 바로가기
Computer Science/UNIX & LINUX

프로세스 관리

by PROGRAMMER_황금돼지코 2023. 3. 30.
반응형

들어가며

리눅스에서 프로세스 관리는 시스템의 성능과 안정성을 유지하기 위해 중요한 역할을 합니다. 

리눅스를 사용하며 도움이 되기를 바랍니다.

 

1. 프로세스의 개념

프로세스(process)는 실행 중인 프로그램을 의미합니다. 각각의 프로세스는 고유한 프로세스 ID(PID)를 가집니다.

프로세스는 부모 프로세스와 자식 프로세스 간의 관계를 가지며, 이를 통해 리소스를 공유하거나 서로 통신할 수 있습니다.

2. 프로세스 관리 명령

대표적인 프로세스 관리 명령어는 다음과 같습니다.

  • ps: 현재 실행 중인 프로세스의 상태를 확인합니다.
  • top: 시스템의 전반적인 상태와 실행 중인 프로세스의 정보를 실시간으로 확인합니다.
  • kill: 프로세스를 종료합니다.
  • nice: 프로세스의 우선순위를 설정합니다.


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

프로세스는 포그라운드(foreground)와 백그라운드(background)로 구분됩니다.

포그라운드 프로세스는 사용자와 상호작용하며,

백그라운드 프로세스는 사용자와 독립적으로 작업을 수행합니다.

작업 제어를 통해 프로세스를 백그라운드로 보내거나 포그라운드로 가져올 수 있습니다.

대표적인 명령어는 다음과 같습니다.

  • & : 명령어 뒤에 &를 붙여 백그라운드에서 실행합니다.
  • fg: 백그라운드에서 실행 중인 프로세스를 포그라운드로 가져옵니다.
  • bg: 일시 정지된 프로세스를 백그라운드에서 계속 실행합니다.

 

3.1 백그라운드에서 프로세스 실행하기

#60초 동안 대기하는 sleep 명령어를 백그라운드에서 실행
sleep 60 &

 

3.2 백그라운드 프로세스를 포그라운드로 가져오기

#백그라운드에서 실행 중인 프로세스를 포그라운드로 가져온다.
fg

#작업 번호(job number)를 사용하여 특정 프로세스를 가져올 수도 있습니다.
fg %작업번호

 

3.3 일시 정지된 프로세스를 백그라운드에서 계속 실행하기

#일시 정지된 프로세스를 백그라운드에서 계속 실행하려면 bg 명령어를 사용합니다.
bg

#작업 번호를 사용하여 특정 프로세스를 계속 실행할 수도 있습니다.
bg %작업번호

 

3.4 작업 중인 프로세스 일시 정지 및 백그라운드로 보내기

#포그라운드에서 실행 중인 프로세스를 일시 정지하고 백그라운드로 보내려면 Ctrl + Z를 누릅니다.
#이후 bg 명령어를 사용하여 일시 정지된 프로세스를 백그라운드에서 계속 실행할 수 있습니다.

sleep 60
# 이후 Ctrl + Z를 눌러 일시 정지
bg

 

3.5 QnA

Q1) 작업번호는 어떻게 알 수 있나요?

A) 작업 번호(job number)는 jobs 명령어를 사용하여 알 수 있습니다. 

jobs 명령어를 실행하면 백그라운드에서 실행 중이거나 일시 정지된 프로세스의 목록과 작업 번호가 표시됩니다.

sleep 60 &
sleep 120 &
sleep 180 &

위 예시에서 3개의 sleep 프로세스를 백그라운드에서 실행한 후, jobs 명령어를 실행하면 다음과 같이 출력됩니다.

jobs
[1]  Running                 sleep 60 &
[2]  Running                 sleep 120 &
[3]  Running                 sleep 180 &

이 출력에서 [1], [2], [3]이 각각의 작업 번호입니다. 이 작업 번호를 사용하여 fg, bg 등의 작업 제어 명령어에 인수로 전달하여 특정 프로세스를 선택할 수 있습니다.

fg %1
bg %2

 

4. 작업 예약

리눅스에서는 특정 시간에 프로세스를 실행할 수 있는 작업 예약 기능을 제공합니다.

대표적인 명령어는 다음과 같습니다.

  • at: 한 번 실행되는 예약 작업을 등록합니다.
  • cron: 주기적으로 실행되는 예약 작업을 등록합니다.

 

4.1 at 명령어 사용 예시

at 명령어를 사용하여 "한 번" 실행되는 예약 작업을 등록할 수 있습니다. 

예를 들어, 5분 뒤에 작업을 실행하려면 다음과 같이 입력합니다.

echo "sleep 60 && echo 'Hello, World!'" | at now + 5 minutes

위 명령어는 5분 뒤에 60초 동안 대기한 후 'Hello, World!'를 출력하는 작업을 예약합니다.


4.2 cron 명령어 사용 예시

cron 명령어를 사용하여 주기적으로 실행되는 예약 작업을 등록할 수 있습니다.

crontab 파일을 편집하여 작업을 등록하거나 삭제할 수 있습니다.

먼저 crontab 파일을 편집하려면 다음 명령어를 입력합니다.

crontab -e

그런 다음, crontab 파일에 작업을 등록합니다. 

예를 들어, 매일 자정에 로그 파일을 삭제하는 작업을 등록하려면 다음과 같이 입력합니다.

0 0 * * * rm /home/user/logs/*.log

*※실제 rm 명령어는 이렇게 사용 하시면 절대 안됩니다. 

 

반응형

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

리눅스 부팅과 종료  (0) 2023.03.30
파일 시스템 & 디스크 관리  (0) 2023.03.30
파일 접근 권한 관리  (0) 2023.03.30
Linux Shell - 리눅스 쉘이란  (0) 2023.03.30
[리눅스] 리눅스 표준 디렉터리  (0) 2023.03.25

댓글