Menu Close

16.14. 기본 단위 구성 확장

이 섹션에서는 추가 구성 옵션으로 기본 유닛 파일을 확장하는 방법을 설명합니다.

절차

  1. 추가 구성 옵션을 사용하여 기본 유닛 파일을 확장하려면 먼저 /etc/systemd/system/.에 구성 디렉터리를 만듭니다. 서비스 장치를 확장하는 경우 root 로 다음 명령을 실행합니다.

    mkdir /etc/systemd/system/name.service.d/

    name 을 확장할 서비스의 이름으로 변경합니다. 위의 구문은 모든 유닛 유형에 적용됩니다.

  2. 이전 단계에서 만든 디렉터리에 구성 파일을 생성합니다. 파일 이름은 .conf 접미사로 끝나야 합니다. 유형:

    touch /etc/systemd/system/name.service.d/config_name.conf

    config_name 을 구성 파일의 이름으로 바꿉니다. 이 파일은 일반 단위 파일 구조를 준수하므로 적절한 섹션에서 모든 지시문을 지정해야 합니다. 단위 파일 구조를 참조하십시오.

    예를 들어 사용자 지정 종속성을 추가하려면 다음 콘텐츠를 사용하여 구성 파일을 생성합니다.

    [Unit]
    Requires=new_dependency
    After=new_dependency

    여기서 new_dependency 는 유닛이 종속성으로 표시됨을 나타냅니다. 또 다른 예로는 기본 프로세스가 종료된 후 서비스를 다시 시작하는 구성 파일이 30초로 지연됩니다.

    [Service]
    Restart=always
    RestartSec=30

    하나의 작업에만 중점을 둔 작은 구성 파일을 생성하는 것이 좋습니다. 이러한 파일은 쉽게 이동하거나 다른 서비스의 구성 디렉토리에 연결할 수 있습니다.

  3. 단위에 대한 변경 사항을 적용하려면 root 로 실행합니다.

    systemctl daemon-reload
    systemctl restart name.service

예 16.1. httpd.service 구성 확장

Apache 서비스를 시작할 때 사용자 정의 쉘 스크립트가 자동으로 실행되도록 httpd.service 유닛을 수정하려면 다음 단계를 수행합니다.

  1. 디렉터리 및 사용자 지정 구성 파일을 생성합니다.

    # mkdir /etc/systemd/system/httpd.service.d/
    # touch /etc/systemd/system/httpd.service.d/custom_script.conf
  2. Apache를 사용하여 자동으로 시작하려는 스크립트가 /usr/local/bin/custom.sh 에 있는 경우 custom_script.conf 파일에 다음 텍스트를 삽입합니다.

    [Service]
    ExecStartPost=/usr/local/bin/custom.sh
  3. 단위 변경 사항을 적용하려면 다음을 실행합니다.

    # systemctl daemon-reload
    # systemctl restart httpd.service
참고

/etc/systemd/system/ 의 구성 파일은 /usr/lib/systemd/system/ 의 장치 파일보다 우선합니다. 따라서 구성 파일에 Description 또는 ExecStart 와 같이 한 번만 지정할 수 있는 옵션이 포함된 경우 이 옵션의 기본값이 재정의됩니다. systemd-delta 명령의 출력에서 재정의된 단위 모니터링 에 설명된 대로, 이러한 장치는 합계에 있는 경우에도 항상 [EXTENDED]로 표시됩니다.