세부 사항을 놓쳤다면 죄송합니다. systemd의 모든 영역을 알지 못할 수도 있습니다. 다른 서비스 이후에 인 감시 서비스가 자동으로 시작되도록 하려고 하는데 왜 기본적으로 비활성화되어 있는지 이해할 수 없습니다.
> /lib/systemd/system# ls |grep phosphor-watchdog
>
> [email protected]
>
> [email protected]
/lib/systemd/system# systemctl status [email protected]
● [email protected] - Phosphor poweron watchdog
Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/[email protected]
└─poweron.conf
Active: inactive (dead)
이것은 Phosphorus Watchdog 서비스에 대한 서비스 파일입니다.
[Unit]
Description=Phosphor %I watchdog
[email protected]
After=pwr-monitor.service
[Service]
Restart=always
EnvironmentFile={envfiledir}/obmc/watchdog/%I
ExecStart=/usr/bin/env phosphor-watchdog --continue --service=${{SERVICE}} --path=${{DEVPATH}} --target=${{TARGET}}
SyslogIdentifier=phosphor-watchdog
[Install]
WantedBy=multi-user.target
그리고[이메일 보호됨]/poweron.conf:
[Unit]
[email protected]
[email protected]
[email protected]
"WantedBy=multi-user.target"이 있음에도 불구하고 내 서비스가 항상 비활성화되는 이유를 알고 싶습니다.
참고: systemctl 활성화를 사용하면 모든 것이 잘 작동하지만 기본적으로 활성화하고 싶습니다.
더 많은 정보를 제공해야 한다면 알려주시기 바랍니다. 감사해요.
답변1
[Install]
WantedBy=multi-user.target
[Install]은 런타임 시 systemd(1)에 의해 해석되지 않으며, 장치 설치 중에 systemctl(1) 도구의 활성화 및 비활성화 명령에 의해 사용됩니다.
따라서 이 섹션에 나타나는 모든 내용은 사용하지 않는 한 [Install]
아무런 효과가 없습니다 systemctl enable
.
참고: systemctl을 사용하면 모든 것이 잘 작동합니다.
이는 예상된 동작입니다. systemctl enable
지속적인 심볼릭 링크가 추가되어 지금부터 비활성화될 때까지 발사할 때마다 장치가 발사됩니다.
하지만 기본적으로 활성화하고 싶습니다.
설치는 단순한 파일 복사 그 이상입니다. 일반적으로 패키지는 다음을 수행합니다.
- 서비스를 설치하십시오.
/lib/systemd/system/
systemctl enable
제공하다systemctl start
제공하다
따라서 설치의 일부는 이어야 합니다 systemctl enable
.
systemd 초기에는 기본적으로 서비스 활성화를 원하지 않는 사람들이 많았던 것을 기억합니다. 예를 들어 Arch 패키지에는 기본적으로 enable
/ services가 없습니다 start
.
데비안에는 직접 호출 deb-systemd-helper
하지 않고 패키지에서 사용하는 helper라는 프로그램이 있습니다 . 활성화한 항목을 기반으로 특정 장치를 사용할지 여부를 결정하는 동시에 업그레이드하기 전에 명시적으로 비활성화/차단한 경우 결정을 존중하는 systemctl enable
등의 작업을 수행합니다 . 또한 업데이트 시 장치를 재설정/다시 로드하거나 장치를 언로드하기 전에 중지하는 등 몇 가지 편리한 작업을 수행할 수도 있습니다.enable
vendor preset