본문 바로가기

운영체제

프로세스 관리와 스케쥴링

728x90

프로세스

프로그램이나 명령어를 실행했을 때 메모리에 적재되어 실제로 동작하는 상태

프로세스가 실행되면 프로세스 식별번호(PID, Process id)를 할당 받음

 

명령어 ps : 프로세스의 정보를 확인

옵션 -e 프로세스 전체 목록 출력

옵션 -f PID,PPID 정보를 포함

 

=> ps -ef 로 사용 ! (PID, PPID 순으로 출력)

PPID는 부모 프로세스

 

프로세스 종료 : kill [signal] [PID] 

signal

1 : 프로세스 실행

2 : ctrl+c 프로세스 종료

9 : 커널을 통해 직접적으로 종료 (강제종료)

15 : 프로세스를 통해 정상 종료

 

==> kill -9 3250 처럼 사용 

 

pkill : 프로세스의 이름을 이용해 종료 (같은 이름으로 동작중인 프로세스를 동시에 제어)

 

 

 

포그라운드

일반적으로 프로그램이 실행되는 방식 

ctrl+c, ctrl+z가 먹힘

ctrl+z는 stop이므로 입력 후 백그라운드로 전환 가능 

 

백그라운드

명령이 실행시킨 프로그램 뒤에서 실행되는 방식 

장시간 동작해야 하는 프로그램은 대부분 백그라운드 방식으로 동작

백그라운드 프로세스는 kill을 사용하여 종료

사용 방법 : 명령어 입력 뒤에 & 

 

백그->포그 : fg 작업번호 &

포그->백그 : bg 작업번호 &

 

nohub : 포그라운드에서 로그아웃 후에는 종료되는 것이 맞지만 nohub를 이용하면 로그아웃 후에도 동작 유지 

#nohub <명령어>

 


 

crond [스케줄링]

예약 작업 관리 

관리자가 원하는 작업을 예약해 두고 정해진 시간에 주기적으로 반복하여 실행

주기적인 서버의 백업이나 로그를 관리할 때 유용

 

 

# crontab -e 로 들어가서 설정

# crontab -l 예약목록 확인

# crontab -r 삭제

 

분 시 일 월 요일(0~6) 명령

ex) */5 * * * * echo "5분 경과" 

==> 로그에 5분마다 문자열 출력 

vi /var/log/cron 에서 실행기록 확인 

 

 

문제

 

  1. 매일 6시 30분에 /data1/1.txt에 hi 출력

# crontab -e 
30 6 * * * echo hi >> /data1/1.txt 

crontab -l 로 확인 

 


  2. 매월 매일 01시 정각에 rdate 명령을 실행하여 time.bora.net과 시간을 동기화

# crontabe -e
* 1 * * * rdate -s time.bora.net

 


  3. 매월 매일 6시간마다 30분이 될 때 /root/backup 디렉터리에 /home/ 디렉터리 내용을 압축하여 저장​

 

# crontabe -e
30 */6 * * * tar zcvf /root/backup/test.tar.gz /home

 

728x90

'운영체제' 카테고리의 다른 글

SSH(Secure Shell)  (0) 2021.06.24
데몬과 xinetd 환경 설정, TCP Wrapper  (0) 2021.06.23
계정 생성 실습  (0) 2021.06.21
Linux - MAC Address를 변경했을 때 (vm ware 환경)  (0) 2021.06.17
[Linux] ln - 파일 링크  (0) 2021.06.17