본문 바로가기

Programming/Linux

[Linux/CentOS] 리눅스 서비스와 소켓

서론

- 서비스: 평상시에도 가동하는 서버 프로세스

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

 

- 서비스와 소켓은 systemd라는 서비스 매니저 프로그램으로 작동시키거나 관리함

관련 세부 내용
https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/

서비스

- 특징

  • 시스템과 독자적으로 구동 및 제공되는 프로세스 
    (ex) 웹 서버 (httpd), DB 서버(mysqld), FTP 서버(vsftpd) 등

  • 실행 및 종료 명령어
    systemctl [start/ctop/restart] 서비스이름
    (ex) 웹 서버 => systemctl start httpd

  • 서비스 실행 스크립트 파일
    : /usr/lib/systemd/system/ 디렉터리에 '서비스이름.service'
    : 부팅과 동시에 서비스 자동 실행 여부 지정 => systemctl list-unit-files
    : 현재 사용과 사용 안 함을 확인할 수 있음
    : STATE가 static으로 설정된 것은 [사용/사용 안 함]으로 설정할 수 없음
    : 이는 다른 서비스나 소켓에 의존해 실행됨
    : 그 외에 generated, transient 등은 특별히 신경쓰지 않아도 됨

systemctl 명령

  • 서비스 시작/중지/재시작
    systemctl [start/stop/restart] 서비스이름

  • 서비스 상태 확인
    systemctl status 서비스이름

  • 서비스 사용/사용 안 함 설정
    systemctl [enable/disable] 서비스이름

  • 부팅과 동시에 서비스의 자동 실행 여부 확인 [ 현재 사용과 사용 안 함 확이 ㄴ가능 [
    systemctl list-unit-files

소켓

[특징]

  • 서비스는 항상 가동되나, 소켓은 외부에서 특정 서비스를 요청할 경우  systemd가 구동 시킴
    요청 종료시 소켓도 종료됨
  • 소켓으로 설정된 서비스 요청시, 처음 연결되는 시간은 앞에서 설명한 서비스에 비해 약간 더 걸리 수 있음
    왜냐하면 systemd가 서비스를 새로 구동하는데 시간이 소요되기 때문
  • 관련 스트립트 파일
    /usr/lib/systemd/system/소켓이름socket

 

[ xintd 데몬 ]

- 예전에 CentOS에서 소켓과 비슷한 개념으로 xinetd 데몬이 주로 사용됨

- CentOS 8도 xined 데몬을 지원하지만, 많은 서비스가 xinetd 대신 소켓으로 사용됨