STUDY/CentOS on Mac

Linux 서비스와 소켓

The Simpler 2017. 3. 2. 13:58

서비스는 평상시에도 늘 가동하는 서버 프로세스며, 소켓은 필요할 때만 작동하는 서버 프로세스를 말한다.

서비스와 소켓은 'systemd'라고 부르는 서비스 매니저 프로그램으로 작동시키거나 관리한다.



서비스

서비스는 눈에 보이지 않지만, 현재 시스템에서 동작 중인 프로세스이므로 백그라운드 프로세스의 일종이라고 할 수 있다.

(우선은 서비스=데몬=서버 프로세스로만 이해해도 좋다.)

시스템과 독자적으로 구성되어 제공하는 프로세스로 웹 서버(httpd), DB 서버 (mysql), FTP 서버 (vsftpd) 등이 있다.
실행 및 종료는 대개 'systemctl start/stop/restart 서비스이름'으로 사용된다. systemctl start httpd 처럼.
서비스의 실행 스크립트 파일은 /usr/lib/systemd/system/ 디렉터리에 '서비스이름.service' 형태로 존재한다. httpd.service 처럼.

부팅과 동시에 서비스의 자동 실행 여부(시작 프로그램처럼)를 지정하 ㄹ수 있다. 'systemctl list-unit-files' 실행

- static은 사용/사용 안 함으로 설정할 수 없으며, 다른 서비스나 소켓에 의존해서 실행된다. 즉 static 으로 설정된 서비스는 신경쓰지 않아도 된다.


소켓

서비스는 항상 가동되지만, 소켓은 외부에서 특정 서비스를 요청할 경우에 systemd가 구동시킨다. 그리고 요청이 끝나면 소켓도 종료된다.

소켓으로 설정된 서비스를 요청할 때에는 systemd가 서비스를 '새로 구동'하는 데에 시간이 소비되기 때문에 시간이 약간 더 걸린다 (항상 가동되어 있는 서비스와 달리). 이와 같은 소켓의 대표적인 예로 텔넷(telnet)을 들 수 있다.

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