Search

리눅스(Linux) - 프로세스(Process)와 실행(Execute)

Created at
2019/02/09
Updated at
2021/02/21
Tags
Keywords
Linux 기초
3 more properties
생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
강의 듣기 (같은 강의이니 편한 곳을 선택해서 공부하면 된다!)

1. 프로세스

컴퓨터의 하드웨어
Storage: HDD, SSD 등의 저장장치
가격↓ 용량↑ 속도↓
Memory: RAM
가격↑ 용량↓ 속도↑
Processor: CPU
컴퓨터의 아키텍처
Storage에 설치되어 있는 프로그램을 읽어서 memory에 적재해두고 이걸 CPU가 읽어서 동작하고 데이터를 처리함
Program vs. Process
Program: 파일로 storage에 저장되어 있는 명령어
Process: 실행되어 메모리에 적재되어서 CPU에 의해 처리되는 상태에 있는 프로그램

2. 프로세스 모니터링

ps: process list
$ ps aux: 백그라운드에서 돌아가는 모든 프로그램 리스트
$ ps aux | grep apache: apache가 들어간 프로세스만 출력
PID: 프로세스 ID
sudo kill [PID] 해당 프로세스를 kill
top & htop
htop: top과 비슷하지만 더 많은 기능 제공
설치
Linux: $ sudo apt-get install htop
Mac: $ brew install htop
컬럼명을 클릭하면 해당 컬럼 기준으로 정렬 가능
Load average: CPU 부하 정도 파악 가능
htop 실행화면

3. 백그라운드 실행

ctrl + z: 프로그램을 끄지 않고 background로 실행됨
fg: 해당 프로그램이 foreground로 돌아감
jobs: background에 실행중인 프로그램을 보여줌
kill %[프로그램 번호]: 정상 종료
kill -9 %[프로그램 번호]: 강제 kill
명령어 끝에 &를 붙이면 즉각 background로 실행

4. 항상 실행 (daemon, service)

데몬의 개념
마치 가전 중 항상 켜져있는 냉장고나 인터넷 공유기처럼 항상 실행되는 프로그램
server 프로그램의 경우가 해당함
service와 자동실행
/etc/init.d: 데몬 프로그램이 위치하는 디렉토리
이 경로에 위치한 데몬 프로그램을 실행하기/끄기
$ sudo service [프로그램명] start
$ sudo service [프로그램명] stop
$ ps aux | grep [프로그램명]: 현재 실행 중인 프로세스 중 [프로그램명]
자동실행: 아래 경로에 S**으로 시작되는 링크 생성 → 자동실행 (S는 서비스시작, K는 서비스중단, 번호는 우선순위)
/etc/rc3.d/ (CLI 운영체제)
/etc/rc5.d/ (GUI 운영체제)

5. 정기적으로 실행 (cron)

cron: 정기적으로 명령을 실행시켜주는 도구
$ crontab -l: cron 작업 리스트
$ crontab -e: 실행하고자하는 cron 작업 정의
입력 format: * * * * * command >> log 경로

6. 쉘을 시작할 때 실행 (startup script)

쉘이 시작할 때 명령을 실행하도록 해서 쉘을 커스터마이징할 수 있음
유용한 예시: alias l='ls -al' (alias를 사용해서 자주 사용하는 명령을 간편하게 실행)
방:
bash의 경우라면 home 디렉토리(cd ~)의 .bashrc script에 코드 추가
참고자료