자격증 & 공부/리눅스마스터 1급

[리눅스마스터 1급 - 2차] 프로세스 관리

woojin._. 2024. 11. 12. 14:25

1) pgrep

  • 지정한 패턴과 일치하는 프로세스에 대한 정보를 출력
  • 출력되는 정보가 많지 않기 때문에 ps 명령어와 같이 사용됨
    • [-x] : 패턴과 정확히 일치하는 프로세스 정보를 출력
    • [-u] : 지정한 사용자에 대한 모든 프로세스 출력
ls –l /proc/14513/exe 또는 which ‘ps –p 14513 –o comm=’
-> PID가 14513인 프로세스를 실행한 명령어의 절대 경로를 출력 </aside>

2) 프로세스 종료 명령어

kill

  • 프로세스에 시그널을 전송하는 명령어
  • 형식 : # kill [시그널] [PID]
  • 옵션을 지정하지 않으면 15번 시그널로 간주되어 실행됨
  • 주요 시그널
  • pgrep 명령어를 이용하면 pkill/killall 명령어와 같은 효과를 볼 수 있음
kill `pgrep sleep`
kill $(pgrep sleep)
killall sleep -> 전부 같은 결과를 나타냄

 

  • kill –l : 시그널 이름과 번호를 확인할 수 있는 명령
  • pkill 명령어
    • kill 명령어와 역할이 같지만, PID 대신 해당 명령어의 프로세스를 종료하는 명령어
    • kill 명령어는 지정한 PID의 프로세스 하나만 종료되지만 pkill 명령어는 지정한 명령어에 관련된 여러 프로세스들이 한꺼번에 종료됨
  • killall 명령어
    • pkill 명령어와 기능이 같음
    • killall –l httpd : 웹 서버를 재시작
    • 좀비 프로세스는 top으로 확인 시 Z로 표시되어있음

3) 우선순위 관련 명령어

  • ps -l 또는 top : 로그인해서 사용 중인 bash의 NI 및 PRI 값을 확인함
  • nice : 현재 사용 중인 셸의 NI 값 출력 (실행될 때)
  • renice : 실행 중인 셸의 NI 값 지정
    • renice –n –10 또는 renice –10
      • 프로세스 아이디(PID)가 1222번인 프로세스의 NI 값을 –10으로 설정
    • nice --10 또는 nice –n -10
      • bash 프로세스에 설정된 NI 값을 –10만큼 감소시켜 우선순위를 높임
    • renice –20 또는 –n -20 또는 --adjustment=-20
      • 특정 프로세스의 NI 값을 할당가능한 최댓값으로 설정하여 우선순위를 최대한 높임 </aside>

4) 백그라운드 작업 관련 명령어

  • nohup
    • 로그아웃한 후에도 백그라운드에서 작업을 계속 실행하도록 하는 명령어
    • nohup tar cvf home.tar /home &
      • 사용자 시스템에 로그인하여 프로그램을 실행시킨 후 발생되는 HUP 시그널을 무시하고 해당 프로그램이 지속적으로 실행되도록 함 </aside>

5) 작업 예약 관련 명령어

  • crontab
    • 파일 경로 : /var/spool/cron/사용자명
    • 크론 설정 파일 : /etc/crontab
    • crontab –l : 설정된 내용 출력
    • crontab –e : 작성하거나 수정
    • crontab –r : crontab 내용 삭제
    • => 사용자명 붙일 시 –u 옵션 추가
    • ex) crontab –l –u jaymon 또는 crontab –lu jaymon
    • *(분) *(시간) *(일) *(월) *(요일)
      • 매분 test.sh 실행
        •  /home/script/test.sh
              •  
      • 매주 금요일 오전 5시 45분 test.sh 실행
        • 45 5 * * 5 /home/script/test.sh
      • 매일 매시간 0분, 20분, 40분에 test.sh 실행
        • 0,20,40 * * * * /home/script/test.sh
      • 매일 1시 0분부터 30분까지 매분 test.sh 실행
        • 0-30 1 * * * /home/script/test.sh
      • 매 10분마다 test.sh 실행
        • /10 * * * * /home/script/test.sh
      • 5일에서 6일까지 2시, 3시, 4시에 매 10분마다 test.sh 실행
        • /10 2,3,4 5-6 * * /home/script/test.sh
      • 매일 23시 30분에 1초 단위로 10회씩 /var/log/check.log 파일로 누적되어 저장
        • 30 23 * * * /var/bin/vmstat 1 10 >> check.log </aside>