OS/Linux - Ubuntu

[Linux - 리눅스 / Ubuntu - 우분투] 프로세스, 작업 예약, Foreground, Background 프로세스 요약

주누다 2015. 3. 30. 16:19
반응형


프로세스 개념

- 현재 실행 중인 프로그램 => 프로세스

- 시스템 프로세스 : 리눅스의 운영에 필요한 기능을 수행하는 프로세스

- 사용자 프로세스 : 사용자들이 실행한 프로세스

- '부모 - 자식' 관계를 가지고 있음.

- 프로세스는 각기 고유한 번호가 있음

- 고유한 번호 = PID(Process Identification Number)



프로세스 종류 

- 데몬 프로세스

 => 리눅스 커널에 의해 실행되고 특정 서비스를 제공

- 부모 프로세스

 => 자식 프로세스를 만드는 프로세스

- 자식 프로세스

 => 부모 프로세스에 의해 만들어지는 프로세스

- 고아 프로세스

 => 결과를 돌려주기 전에 부모 프로세스가 먼저 종료된 자식 프로세스

- 좀비 프로세스

 => 사용하던 자원을 반납했지만 부모 프로세스로부터 작업 종료에 대한 승인을 받지 못 한 프로세스



프로세스 관리 명령 


  프로세스 목록 보기

 - 'ps -ef' : 현재 실행 중인 프로세스의 정보 출력

 - 'pgrep' : 지정한 패턴과 일치하는 프로세스의 정보 출력


  프로세스 종료

 - kill [시그널] PID : 인자로 지정한 프로세스에 시그널 전달

   => 시그널 9 번 : 강제 종료

   => 시그널 15번 : 프로세스 종료(default)

   => 시그널 2번 : 인터럽트

 - pkill [명령 이름] : 프로세스 번호 대신 이름으로 프로세스를 찾아 종료


  프로세스 관리 도구

 - 시스템에서 동작 중인 모든 프로세스를 주기적으로 확인. 프로세 통계 정보를 주기적으로 출력

 - 'top' 명령(터미널)과 '시스템 감시'(gnome)이 있음.



포어그라운드 작업, 백그라운드 작업

- 포어그라운드 : 사용자가 명령을 입력한 후 결과가 출력할 때까지 대기

- 백그라운드 : 명령을 백그라운드 방식으로 실행시 명령의 처리와 상관없이 곧바로 프롬프트 출력되어

 다른 작업을 계속 할 수 있음. 

- 백그라운드 방식은 명령의 마지막에 '&' 기호를 추가

 

작업 제어 명령

 - jobs : 백그라운드 작업 목록 출력

- fg [%작업번호] : 해당 작업을 포어그라운드 작업으로 전환

- bg [%작업번호] : 해당 작업을 백그라운드 작업으로 전환

- 'Ctrl + z' 또는 stop [%작업번호] : 포어그라운드 작업을 잠시 중단

- kill [%작업번호] : 해당 작업을 종료



자동 작업 관리(at, crontab)

정해진 시간에 한번 실행

- at 명령 설정 : '/var/spool/cron/atjobs' 디렉터리에 저장

- 작업 목록 확인 : 'at -l', 'atq'

- 작업 설정 삭제 : 'at -d, atrm'

- at 명령의 사용이 허용된 사용자 목록 : '/etc/at.allow'

- at 명령의 사용이 금지된 사용자 목록 : '/etc/at.deny'

- '/etc/at.allow' 파일이 있는 경우 이 파일에 있는 사용자만 'at' 명령 사용 가능.

 '/etc/at.allow' 파일이 없는 경우 '/etc/at.deny' 파일에 지정된 사용자를 제외한 모든 사용자가 'at' 명령 사용 가능

 두 파일이 없는 경우 root 사용자만 'at' 명령 사용가능

 

정해진 시간에 반복 실행

- crontab 명령 : '/var/spool/cron' 디렉터리에 생성

- crontab 파일은 여섯 항목

  => 분(0~59), 시(0~23), 일(1~31), 월(1~12), 요일(0~6), 명령(절대 경로) 로 구성

- crontab 파일 생성 : 'crontab -e' (EDITOR=vi; export EXPORT)

- crontab 파일 내용 출력 : 'crontab -l'

- crontab 파일 삭제 : 'crontab -r'

- crontab 명령의 사용이 허용된 사용자 목록 : '/etc/cron.allow'

- crontab 명령의 사용이 금지된 사용자 목록 : '/etc/cron.deny'

- 사용자 이름이 '/etc/cron.allow' 파일에 있거나,

 '/etc/cron.allow' 파일이 없고 사용자 이름이 '/etc/cron.deny' 파일에 지정되지 않으면

 crontab 명령 사용 가능

- 두 파일이 모두 없으면 시스템 설정에 따라 root 사용자만 또는 모든 사용자가 'crontab' 명령 사용가능.

- 간단한 반복 작업 만들기

   => '/etc/cron.hourly', '/etc/cron.daily', '/etc/cron.weekly', '/etc/cron.monthly' 디렉터리에

    반복할 작업을 쉘 스크립트로 만들어 저장.




반응형