Study/리눅스

[리눅스] 서비스, 소켓과 관련 명령어

우징어🦑 2020. 10. 16. 00:19

리눅스에서 서비스(service) = 데몬(daemon) = 서버 프로세스 라고 이해하면 편하다. 

 

 

서비스 : 시스템에서 늘 가동하는 서버 프로세스. 백그라운드 프로세스의 일종이다.

소켓 : 필요할 때만 작동하는 서버 프로세스

 

서비스와 소켓은 systemd라는 서비스 매니저 프로그램으로 작동/관리된다.

 

서비스

 

- 시스템과 독자적으로 구동 및 제공되는 프로세스. 

 ex) 웹서버(httpd), DB 서버(mysqld), FTP서버(vsftpd)

 

- 실행 및 종료는 'systemctl start/stop/restart/status 서비스이름' 명령으로 관리된다.

 ex) 웹서버 구동 : systemctl start httpd

 

- 서비스의 실행 스크립트 파일은 /usr/lib/systemd/system/ 디렉터리에 '서비스이름.service' 라는 이름으로 되어있다.

 ex) Cron 서비스는 crond.service라는 이름으로 되어있다.

 

- systemctl list-unit-files 명령으로 상태(STATE)가 사용(enabled)/사용안함(disabled)인지 확인함으로써 부팅과 동시에 서비스의 자동 실행 여부를 조정할 수 있다.

static : 사용/사용안함 설정할 수 없고, 다른 서비스나 소켓에 의존해서 실행되는 것.

 

*ntsysv 명령으로 뜬 창에서, [ ] 안에 체크표시 있으면 부팅 시 뜨는 것, 없으면 부팅 시 뜨지 않는 것이다.

 

 

소켓 

- 서비스는 항상 가동되지만, 소켓은 그렇지 않다.

외부에서 특정 서비스를 요청할 경우에 systemd가 구동시키고, 요청이 끝나면 소켓도 종료된다.

 

- 소켓으로 설정된 서비스를 요청할 때 처음 연결되는 시간은 항상 구동되는 서비스보다 약간 느릴 수 있다. systemd가 서비스를 새로 구동하는 데 시간이 소요되기 때문.

 

- 소켓 관련 스크립트 파일은 /usr/lib/systemd/system/ 디렉터리에 '소켓이름.socket' 이름으로 존재한다.

 

- 장점 : 메모리 낭비 X(항시 구동되지 않기 때문)

- 단점 : 시간이 오래 걸림

 

 

 

 

 

* 공부 자료 및 출처 : 이것이 리눅스다 with RedHat CentOS8 [우재남, 한빛출판사]