| 양쪽 이전 판 이전 판 다음 판 | 이전 판 |
| systemd [2020/12/11 06:11] – [개요] koov | systemd [2023/03/21 01:24] (현재) – koov |
|---|
| |
| * [[Systemd Unit 옵션]] | * [[Systemd Unit 옵션]] |
| | * [[Systemd 를 이용한 디렉토리/파일 모니터링 이벤트]] |
| | * [[Systemd journal log 저장]] |
| | * [[Systemd journal log 활용]] |
| |
| ===== Systemd 기본 정보 ===== | ===== Systemd 기본 정보 ===== |
| ==== [Service] Section ==== | ==== [Service] Section ==== |
| === [Service] Section keyword === | === [Service] Section keyword === |
| ^ 지시어 ^ 기술 ^ | ^ 지시어 ^ 기술 ^ |
| | ''Type'' | ''ExecStart'' 기능 및 관련 옵션에 영향을 미치는 단위 프로세스 시작 유형을 구성합니다.\\ * ''simple'' – 기본값입니다. ''ExecStart''로 시작된 프로세스는 서비스의 주요 프로세스입니다.\\ * ''forking'' – ''ExecStart''로 시작된 프로세스는 서비스의 기본 프로세스가 되는 하위 프로세스를 생성합니다. 시작이 완료되면 상위 프로세스가 종료됩니다.\\ * ''oneshot'' – 이 유형은 ''simple''과 유사 하지만 후속 장치를 시작하기 전에 프로세스가 종료됩니다.\\ * ''dbus'' – 이 유형은 ''simple''과 유사 하지만 주 프로세스가 D-Bus 이름을 얻은 후에 만 시작됩니다.\\ * ''notify'' – 이 유형은 ''simple''과 유사 하지만 ''sd_notify()'' 함수를 통해 알림 메시지를 보낸 후에 만 시작됩니다.\\ * ''idle'' – ''simple''과 유사하게 모든 작업이 완료 될 때까지 서비스 바이너리의 실제 실행이 지연되어 상태 출력과 서비스의 셸 출력이 혼합되는 것을 방지합니다. | | | ''Type'' | ''ExecStart'' 기능 및 관련 옵션에 영향을 미치는 단위 프로세스 시작 유형을 구성합니다.\\ * ''simple'' – 기본값입니다. ''ExecStart''로 시작된 프로세스는 서비스의 주요 프로세스입니다.\\ * ''forking'' – ''ExecStart''로 시작된 프로세스는 서비스의 기본 프로세스가 되는 하위 프로세스를 생성합니다. 시작이 완료되면 상위 프로세스가 종료됩니다.\\ * ''oneshot'' – 이 유형은 ''simple''과 유사 하지만 후속 장치를 시작하기 전에 프로세스가 종료됩니다.\\ * ''dbus'' – 이 유형은 ''simple''과 유사 하지만 주 프로세스가 D-Bus 이름을 얻은 후에 만 시작됩니다.\\ * ''notify'' – 이 유형은 ''simple''과 유사 하지만 ''sd_notify()'' 함수를 통해 알림 메시지를 보낸 후에 만 시작됩니다.\\ * ''idle'' – ''simple''과 유사하게 모든 작업이 완료 될 때까지 서비스 바이너리의 실제 실행이 지연되어 상태 출력과 서비스의 셸 출력이 혼합되는 것을 방지합니다. | |
| | ''ExecStart'' | 장치가 시작될 때 실행할 명령 또는 스크립트를 지정합니다. ''ExecStartPre'' 와 ''ExecStartPost''는 ''ExecStart'' 전, 후에 실행되는 사용자 지정 명령을 지정합니다. ''Type=oneshot''는 순차적으로 실행되는 여러 사용자 지정 명령을 지정할 수 있습니다. | | | ''ExecStart'' | 장치가 시작될 때 실행할 명령 또는 스크립트를 지정합니다. ''ExecStartPre'' 와 ''ExecStartPost''는 ''ExecStart'' 전, 후에 실행되는 사용자 지정 명령을 지정합니다. ''Type=oneshot''는 순차적으로 실행되는 여러 사용자 지정 명령을 지정할 수 있습니다. | |
| | ''ExecStop'' | 장치가 중지 될 때 실행할 명령 또는 스크립트를 지정합니다. | | | ''ExecStop'' | 장치가 중지 될 때 실행할 명령 또는 스크립트를 지정합니다. | |
| | ''ExecReload'' | 장치를 다시로드 할 때 실행할 명령 또는 스크립트를 지정합니다. | | | ''ExecReload'' | 장치를 다시로드 할 때 실행할 명령 또는 스크립트를 지정합니다. | |
| | ''Restart'' | 이 옵션을 사용하면 ''systemctl''명령에 의한 깨끗한 중지를 제외하고 프로세스가 종료 된 후 서비스가 다시 시작됩니다 . | | | ''Restart'' | 이 옵션을 사용하면 ''systemctl''명령에 의한 깨끗한 중지를 제외하고 프로세스가 종료 된 후 서비스가 다시 시작됩니다 . | |
| | ''RemainAfterExit'' | ''True''로 설정하면 모든 프로세스가 종료 된 경우에도 서비스가 활성 상태로 간주됩니다. 기본값은 ''False''입니다. 이 옵션은 ''Type=oneshot''가 구성된 경우 특히 유용 합니다. | | | ''RemainAfterExit'' | ''True''로 설정하면 모든 프로세스가 종료 된 경우에도 서비스가 활성 상태로 간주됩니다. 기본값은 ''False''입니다. 이 옵션은 ''Type=oneshot''가 구성된 경우 특히 유용 합니다. | |
| | | limit | LimitCPU=, LimitFSIZE=, LimitDATA=, LimitSTACK=, LimitCORE=, LimitRSS=, LimitNOFILE=, LimitAS=, LimitNPROC=, LimitMEMLOCK=, LimitLOCKS=, LimitSIGPENDING=, LimitMSGQUEUE=, LimitNICE=, LimitRTPRIO=, LimitRTTIME= | |
| |
| ==== [Install] Section ==== | ==== [Install] Section ==== |
| * https://www.freedesktop.org/software/systemd/man/systemd.directives.html | * https://www.freedesktop.org/software/systemd/man/systemd.directives.html |
| * https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files | * https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files |
| | |
| | |
| | ===== 참고사례 ===== |
| | ==== kavita ==== |
| | 백그라운드 프로세스 동작 시키는 스크립트 |
| | |
| | <WRAP prewrap> |
| | <code vim> |
| | [Unit] |
| | Description=Kavita Daemon |
| | |
| | [Service] |
| | User=root |
| | WorkingDirectory=/Kavita |
| | Type=simple |
| | ExecStart=/Kavita/Kavita |
| | PIDFile=/Kavita/Kavita.pid |
| | Restart=on-failure |
| | |
| | [Install] |
| | WantedBy=multi-user.target |
| | </code> |
| | </WRAP> |
| | |
| |
| |