14.2. systemctl을 사용하여 시스템 서비스 관리


시스템 관리자는 systemctl 유틸리티를 사용하여 시스템 서비스를 관리할 수 있습니다. 실행 중인 서비스 시작, 중지, 다시 시작, 서비스 활성화 및 비활성화, 사용 가능한 서비스 나열, 시스템 서비스 상태 표시 등 다양한 작업을 수행할 수 있습니다.

14.2.1. 시스템 서비스 나열

현재 로드된 모든 서비스 단위를 나열하고 사용 가능한 모든 서비스 단위의 상태를 표시할 수 있습니다.

절차

systemctl 명령을 사용하여 다음 작업을 수행합니다.

  • 현재 로드된 모든 서비스 단위를 나열합니다.

    $ systemctl list-units --type service
    UNIT                     LOAD   ACTIVE SUB     DESCRIPTION
    abrt-ccpp.service        loaded active exited  Install ABRT coredump hook
    abrt-oops.service        loaded active running ABRT kernel log watcher
    abrtd.service            loaded active running ABRT Automated Bug Reporting Tool
    ...
    systemd-vconsole-setup.service loaded active exited  Setup Virtual Console
    tog-pegasus.service            loaded active running OpenPegasus CIM Server
    
    LOAD   = Reflects whether the unit definition was properly loaded.
    ACTIVE = The high-level unit activation state, or a generalization of SUB.
    SUB    = The low-level unit activation state, values depend on unit type.
    
    46 loaded units listed. Pass --all to see loaded but inactive units, too.
    To show all installed unit files use 'systemctl list-unit-files'

    기본적으로 systemctl list-units 명령은 활성 유닛만 표시합니다. 각 서비스 단위 파일에 대해 명령은 다음 매개변수에 대한 개요를 제공합니다.

    단위
    서비스 유닛의 전체 이름
    LOAD
    구성 파일의 로드 상태
    ACTIVE 또는 SUB
    현재 고급 및 낮은 수준의 장치 파일 활성화 상태
    DESCRIPTION
    유닛의 목적과 기능에 대한 간략한 설명
  • all 또는 -a 명령줄 옵션과 함께 다음 명령을 사용하여 상태에 관계없이 로드된 모든 유닛 을 나열합니다.

    $ systemctl list-units --type service --all
  • 사용 가능한 모든 서비스 단위의 상태(활성화 또는 비활성화)를 나열합니다.

    $ systemctl list-unit-files --type service
    UNIT FILE                               STATE
    abrt-ccpp.service                       enabled
    abrt-oops.service                       enabled
    abrtd.service                           enabled
    ...
    wpa_supplicant.service                  disabled
    ypbind.service                          disabled
    
    208 unit files listed.

    서비스 유닛마다 이 명령이 표시됩니다.

    단위 파일
    서비스 유닛의 전체 이름
    상태
    부팅 중에 서비스 단위가 활성화되거나 비활성화되었는지 여부에 대한 정보

14.2.2. 시스템 서비스 상태 표시

서비스 단위를 검사하여 자세한 정보를 가져오고 부팅 중에 시작되도록 활성화되었는지 또는 현재 실행 중인 서비스 상태인지 확인할 수 있습니다. 특정 서비스 유닛 이후 또는 그 전에 시작되도록 주문된 서비스를 볼 수도 있습니다.

절차

systemctl 명령을 사용하여 다음 작업을 수행합니다.

  • 시스템 서비스에 해당하는 서비스 유닛에 대한 자세한 정보를 표시합니다.

    $ systemctl status <name>.service

    & lt;name >을 검사하려는 서비스 단위의 이름으로 바꿉니다(예: gdm).

    이 명령은 다음 정보를 표시합니다.

    • 선택한 서비스 단위의 이름 뒤에 간단한 설명
    • 사용 가능한 서비스 단위 정보에설명된 하나 이상의 필드
    • 서비스 유닛의 실행: 루트 사용자가 유닛을 실행하는 경우
    • 최신 로그 항목

      표 14.2. 사용 가능한 서비스 유닛 정보
      필드설명

      로드됨

      서비스 유닛이 로드되었는지 여부, 단위 파일의 절대 경로, 부팅 중에 장치를 시작할 수 있는지 여부를 확인합니다.

      활성

      서비스 유닛의 실행 여부와 타임스탬프에 대한 정보입니다.

      Main PID

      프로세스 ID 및 해당 시스템 서비스의 이름입니다.

      상태

      해당 시스템 서비스에 대한 추가 정보입니다.

      프로세스

      관련 프로세스에 대한 추가 정보.

      cgroup

      관련 제어 그룹(cgroup)에 대한 추가 정보.

    예 14.1. 서비스 상태 표시

    GNOME Display Manager의 서비스 유닛은 gdm.service 라고 합니다. 이 서비스 유닛의 현재 상태를 확인하려면 쉘 프롬프트에서 다음을 입력합니다.

    # systemctl status gdm.service
    gdm.service - GNOME Display Manager
       Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled)
       Active: active (running) since Thu 2013-10-17 17:31:23 CEST; 5min ago
     Main PID: 1029 (gdm)
       CGroup: /system.slice/gdm.service
               ├─1029 /usr/sbin/gdm
               └─1047 /usr/bin/Xorg :0 -background none -verbose -auth /r...
    
    Oct 17 17:31:23 localhost systemd[1]: Started GNOME Display Manager.
  • 특정 서비스 장치가 실행 중인지 확인합니다.

    $ systemctl is-active <name>.service
  • 부팅 중에 특정 서비스 단위가 시작되도록 활성화되어 있는지 확인합니다.

    $ systemctl is-enabled <name>.service
    참고

    지정된 서비스 장치가 실행 중이거나 활성화된 경우 systemctl is-activesystemctl is-enabled 명령은 종료 상태 0 을 반환합니다.

  • 지정된 서비스 단위 전에 systemd 주문을 시작할 서비스 확인

    # systemctl list-dependencies --after <name>.service

    예를 들어 gdm 이전에 시작되도록 순서가 지정된 서비스 목록을 보려면 다음을 입력합니다.

    # systemctl list-dependencies --after gdm.service
    gdm.service
    ├─dbus.socket
    ├─getty@tty1.service
    ├─livesys.service
    ├─plymouth-quit.service
    ├─system.slice
    ├─systemd-journald.socket
    ├─systemd-user-sessions.service
    └─basic.target
    [output truncated]
  • 지정된 서비스 단위 후에 시작할 서비스 systemd 주문을 확인합니다.

    # systemctl list-dependencies --before <name>.service

    예를 들어 gdm 후에 시작할 서비스 systemd 주문 목록을 보려면 다음을 입력합니다.

    # systemctl list-dependencies --before gdm.service
    gdm.service
    ├─dracut-shutdown.service
    ├─graphical.target
    │ ├─systemd-readahead-done.service
    │ ├─systemd-readahead-done.timer
    │ └─systemd-update-utmp-runlevel.service
    └─shutdown.target
      ├─systemd-reboot.service
      └─final.target
        └─systemd-reboot.service

추가 리소스

14.2.3. 시스템 서비스 시작

start 명령을 사용하여 현재 세션에서 시스템 서비스를 시작할 수 있습니다.

사전 요구 사항

  • 루트 액세스

절차

  • 현재 세션에서 시스템 서비스를 시작합니다.

    # systemctl start <name>.service

    & lt;name >을 시작하려는 서비스 단위의 이름으로 바꿉니다(예: httpd.service).

    참고

    systemd 에서는 서비스 간에 양수 및 음수 종속성이 있습니다. 특정 서비스를 시작하려면 하나 이상의 다른 서비스(공속성)를 시작하거나 하나 이상의 서비스(거의종속성)를 중지해야 할수 있습니다.

    새 서비스를 시작하려고 하면 systemd 는 사용자에게 명시적 통지 없이 모든 종속 항목을 자동으로 해결합니다. 즉, 이미 서비스를 실행 중이고 음수 종속성을 사용하여 다른 서비스를 시작하려고 하면 첫 번째 서비스가 자동으로 중지됩니다.

    예를 들어 postfix 서비스를 실행 중이고 sendmail 서비스를 시작하려고 하는 경우 systemd 는 먼저 postfix 를 자동으로 중지합니다. 이 두 서비스는 충돌하고 동일한 포트에서 실행할 수 없기 때문입니다.

추가 리소스

14.2.4. 시스템 서비스 중지

현재 세션에서 시스템 서비스를 중지하려면 stop 명령을 사용합니다.

사전 요구 사항

  • 루트 액세스

절차

  • 시스템 서비스를 중지합니다.

    # systemctl stop <name>.service

    & lt;name >을 중지하려는 서비스 단위의 이름으로 바꿉니다(예: bluetooth).

추가 리소스

14.2.5. 시스템 서비스 다시 시작

restart 명령을 사용하여 현재 세션에서 시스템 서비스를 다시 시작하여 다음 작업을 수행할 수 있습니다.

  • 현재 세션에서 선택한 서비스 장치를 중지하고 즉시 다시 시작합니다.
  • 해당 서비스가 이미 실행 중인 경우에만 서비스 장치를 다시 시작합니다.
  • 실행을 중단하지 않고 시스템 서비스의 구성을 다시 로드합니다.

사전 요구 사항

  • 루트 액세스

절차

  • 시스템 서비스를 다시 시작하십시오.

    # systemctl restart <name>.service

    & lt;name >을 재시작할 서비스 단위의 이름으로 바꿉니다(예: httpd).

    참고

    선택한 서비스 유닛이 실행 중이 아니면 이 명령도 시작합니다.

  • 선택 사항: 해당 서비스가 이미 실행 중인 경우에만 서비스 장치를 다시 시작하십시오.

    # systemctl try-restart <name>.service
  • 선택 사항: 서비스 실행을 중단하지 않고 구성을 다시 로드합니다.

    # systemctl reload <name>.service
    참고

    이 기능을 지원하지 않는 시스템 서비스, 이 명령을 무시합니다. 이러한 서비스를 다시 시작하려면 대신 reload-or-restartreload-or-try-restart 명령을 사용합니다.

추가 리소스

14.2.6. 부팅 시 시스템 서비스가 시작되도록 활성화

부팅 시 서비스가 자동으로 시작되도록 활성화할 수 있습니다. 이러한 변경 사항은 다음 재부팅 시 적용됩니다.

사전 요구 사항

  • 루트 액세스
  • 사용하려는 서비스는 마스킹할 수 없습니다. 마스킹된 서비스가 있는 경우 먼저 마스킹을 해제합니다.

    # systemctl unmask <name>.service

절차

  • 부팅 시 시작할 서비스를 활성화합니다.

    # systemctl enable <name>.service

    & lt;name >을 활성화하려는 서비스 단위의 이름으로 바꿉니다(예: httpd).

  • 선택 사항: 단일 명령을 사용하여 서비스를 활성화하고 시작할 수도 있습니다.

    # systemctl enable --now <name>.service

추가 리소스

14.2.7. 부팅할 때 시작할 시스템 서비스 비활성화

부팅 시 서비스 유닛이 자동으로 시작되지 않도록 할 수 있습니다. 서비스를 비활성화하면 부팅 시 시작되지 않지만 수동으로 시작할 수 있습니다. 수동으로 시작할 수 없도록 서비스를 마스킹할 수도 있습니다. 마스킹은 서비스를 다시 마스크 해제할 때까지 영구적으로 사용할 수 없게 하는 서비스를 비활성화하는 방법입니다.

사전 요구 사항

  • 루트 액세스

절차

  • 부팅 시 시작할 서비스를 비활성화합니다.

    # systemctl disable <name>.service

    & lt;name >을 비활성화하려는 서비스 단위의 이름으로 바꿉니다(예: bluetooth).

  • 선택 사항: 서비스를 영구적으로 사용할 수 없게 하려면 서비스를 마스크하십시오.

    # systemctl mask <name>.service

    이 명령은 /etc/systemd/system/name.service 파일을 /dev/null 에 대한 심볼릭 링크로 교체하여 systemd 에 액세스할 수 없는 실제 유닛 파일을 렌더링합니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.