Linux – Service and Daemons

1. SysVinit서비스

  • /etc/init.d : SysVinit(Unix System Five Init) 기반의 Linux 시스템에서 시스템 서비스(데몬)를 관리하는 스크립트들이 위치하는 디렉터리
  • 서비스(daemon)의 시작(start), 정지(stop), 재시작(restart) 등을 제어하기 위한 실행 스크립트 모음이 저장된 디렉토리
  • 스크립트는 start, stop, restart, status 등의 서브 커맨드를 지원
  • 대부분의 최신 Linux 배포판(Ubuntu 16.04+, Debian Jessie+, CentOS 7+)에서는 /etc/init.d 대신 **systemd**가 사용

2. systemctl

  • /etc/systemd/system 디렉토리에 명세파일이 존재
  • systemd라는 시스템 및 서비스 관리자를 기반으로 작동
  • 현재 대부분의 리눅스 배포판(Ubuntu, CentOS, Debian, Fedora 등)에서 systemd가 기본 init 시스템으로 사용

example – vsftpd’s status:

Bash
# systemctl status vsftpd
 vsftpd.service - vsftpd FTP server
     Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2025-04-28 07:30:24 UTC; 1 week 2 days ago
   Main PID: 928 (vsftpd)
      Tasks: 1 (limit: 76878)
     Memory: 14.2M
        CPU: 1min 48.897s
     CGroup: /system.slice/vsftpd.service
             └─928 /usr/sbin/vsftpd /etc/vsftpd.conf

Apr 28 07:30:24 centricone systemd[1]: Starting vsftpd FTP server...
Apr 28 07:30:24 centricone systemd[1]: Started vsftpd FTP server.
root@centricone:~# 
Bash

예시 데몬:

  • *d: httpd, sshd, ftpd, vsftpd, proftpd, mariadbd, mysqld

3. systemctl 명령

  • systemctlsystemd 데몬을 제어하는 명령줄 도구
  • 주로 서비스 시작/중지, 부팅 시 자동 실행 설정, 상태 확인, 로그 조회 등을 관리합니다.
  • init.dservice 명령의 대체 명령(init.d의 service 명령은 구식)

4. systemctl 서비스 제어 명령

명령어설명
systemctl start [서비스명]서비스 시작
systemctl stop [서비스명]서비스 중지
systemctl restart [서비스명]서비스 재시작
systemctl reload [서비스명]설정만 다시 읽기 (재시작 없이)
systemctl status [서비스명]서비스 상태 확인
systemctl enable [서비스명]부팅 시 자동 시작 설정
systemctl disable [서비스명]자동 시작 비활성화
systemctl is-enabled [서비스명]현재 자동 시작 여부 확인
systemctl mask [서비스명]서비스 실행 완전 차단 (시작 불가)
systemctl unmask [서비스명]mask 해제 (다시 실행 가능하게)

5. systemctl 전체 시스템 관리 명령

명령어설명
systemctl list-units --type=service실행 중인 서비스 목록
systemctl list-unit-files설치된 서비스 목록과 활성화 상태
systemctl reboot시스템 재부팅
systemctl poweroff시스템 종료
systemctl suspend시스템 절전 모드
systemctl halt시스템 정지 (전원은 켜짐)
systemctl isolate [타겟명]런레벨(타겟) 전환 (예: multi-user → graphical)

6. 서비스 예시

Bash
systemctl start nginx          # nginx 서버 시작
systemctl status sshd         # SSH 서비스 상태 확인
systemctl enable apache2      # 부팅 시 아파치 자동 시작
systemctl stop firewalld      # 방화벽 서비스 중지
systemctl restart NetworkManager
Bash

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다