1. 프로세스

하드디스크에 저장된 실행 코드(프로그램)가 메모리에 로딩되어 활성화 된 것'

포그라운드 프로세스

실행하면 화면에 나타나 사용자와 상호작용하는 프로세스. 파이어폭스, 크롬 같은 브라우져 실행화면을 생각하면 된다.

 

백그라운드 프로세스

실행은 됐지만 화면에는 나타나지 않는 프로세스. 바이러스 백신, 서버 데몬(서비스) 등

프로세스 번호

메모리에 로딩되어 활성화된 프로세스를 구분하려면 고유 번호가 필요하다. 이 번호를 통해서 메모리에서 활성화된 특정 프로세르르 찾고 강제로 제거할수 있다.

 

작업번호

현재 실행되는 백그라운드 프로세스의 순차번호를 의미한다.

 

부모프로세스와 자식프로세스

파이어폭스는 x윈도 프로세스가 구동된 상태에서 실행되어야 한다.

x윈도가 종료되면 파이어폭스도 같이 종료된다.

x윈도는 부모프로세스가 되고 파이어폭스는 자식프로세스가 된다.

ps
ps -ef | grep 프로세스이름
kill
kill -9 프로세스번호
pstre

현재 프로세스 상태를 확인하는 명령

프로세스를 강제로 종료하는 명령

부모 프로세와 자신 프로세스의 관계를 트리 형태로 출력

출력 예시

실습

yes > /dev/null

무한 루프를 도는 단순한 프로세스를 하나 생성

아무런 메시지 출력이 안되는 것이 정상이다.

터미널에 새로운 탭을 열고(기존의 탭은 무한 루프 중이다)

ps -ef | grep yes

프로세스 번호 확인

root 프로세스 소유주

4610 프로세스 번호

4623 부모프로세스 번호

kill -9 4610

프로세스 종료 명령

첫번째 터미널 탭으로 가면 죽었음이 출력된다.

 

2. 서비스

시스템과는 무관하게 독립적으로 실행되는 프로세스이다.

웹서버 서비스, DB서버 서비스, FTP 서버 서비스 등을 들수 있다.

systemctl start/stop/restart 서비스이름

명령을 사용해 서비스를 실행하거나 종료한다.

systemctl list-unit-files

명령을 실행하면 현재 설정된 자동 실행 여부를 확인할 수 있다.

static 으로 설정된 서비스는 다른 서비스나 소켓에 의존해서 실행되므로 자동 실행 여부를 설정할 수 없다.

systemctl status 서비스이름

서비스 상태 확인

systemctl enable/disable 서비스이름

서비스 사용/사용안함

 

3. 소켓

서비스와 반대되는 개념으로 필요할 때만 작동하는 서버 프로세를 의미한다.

외부에서 특정 서비스를 요청할 경우 systemd가 소켓을 구동한다. 요청이 끝나면 소켓을 종료한다.

대표적인 예로 텔넷 서버이다.

+ Recent posts