기계는 거짓말하지 않는다

systemd 서비스 부팅 유닛 작성, 적용 본문

Linux

systemd 서비스 부팅 유닛 작성, 적용

KillinTime 2023. 11. 26. 18:16

시스템 부팅 시 시작되어야 할 서비스를 systemd 스크립트로 작성하는 간략한 방법이다.

systemd 서비스 유닛 파일 작성

부팅 시 실행할 스크립트를 systemd 서비스 유닛으로 정의해야 한다.

systemd 서비스 유닛 파일은 /etc/systemd/system 또는 /lib/systemd/system 디렉터리에 저장된다.

이 디렉터리에 서비스 유닛 파일을 작성해야한다.

예를 들어 부팅 시 /home/user/myscript.sh를 실행해야 할 때,

etc/systemd/system/myscript.service라는 서비스를 다음과 같이 작성할 수 있다.

[Unit]
Description=My Custom Script

[Service]
Type=oneshot
ExecStart=/bin/bash -c "/home/user/myscript.sh"
Requires=docker.service
After=docker.service

[Install]
WantedBy=multi-user.target

Requires에는 상위 의존성을 작성할 수 있고 상위 의존성 서비스가 정상적일 경우 이 유닛이 시작된다.

After에는 After에 작성된 서비스가 시작된 후 유닛이 시작된다.

이와 같이 선행 실행 서비스를 작성하고 서비스 우선순위를 설정할 수 있다.

여러 개를 나열하려면 docker.service custom.service custom2.service 와 같이 작성하면 된다.

설정 적용

# systemd 변경된 설정을 다시 읽도록
sudo systemctl daemon-reload

# 의존 서비스와 함께 현재 서비스를 활성화
# service 파일이 있는 경로에서
sudo systemctl enable myscript.service

# 부팅 시 서비스를 시작
sudo systemctl start myscript.service
Comments