시스템 서비스가 자동으로 시작되지 않는 이유는 무엇입니까?

시스템 서비스가 자동으로 시작되지 않는 이유는 무엇입니까?

이것은 내 boondocks-agent.service 파일입니다. 저는 /lib/systemd/system에 설치했습니다.

[Unit]
Description=Boondocks agent
Requires=\
    balena.service 
After=\
    balena.service 

[Service]
Type=simple
Restart=always
RestartSec=10s
WatchdogSec=60
EnvironmentFile=/etc/boondocks-agent/agent.conf
EnvironmentFile=-/tmp/boondocks-agent.conf
ExecStartPre=-/usr/bin/stop-boondocks-agent
ExecStart=/usr/bin/healthdog --healthcheck=/usr/lib/boondocks-agent/boondocks-agent-healthcheck  /usr/bin/start-boondocks-agent
ExecStop=-/usr/bin/stop-boondocks-agent

[Install]
WantedBy=multi-user.target

시스템을 부팅할 때 부팅되지 않는 것 같습니다. 클린 부팅 후 표시되는 상태는 다음과 같습니다.

systemctl status boondocks-agent
boondocks-agent.service - Boondocks agent
   Loaded: loaded (/lib/systemd/system/boondocks-agent.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

부팅 시 자동으로 시작되게 하려면 어떻게 해야 합니까?

답변1

당신은 말한다,

YOCTO에서 동등한 호출은 systemctl enable다음과 같습니다:

   SYSTEMD_SERVICE_${PN} = " \
       boondocks-agent.service
       "

나는 이것이 다음과 같다고 생각한다.설치하다제공하다. 기본적으로 서비스를 활성화하려면 다음을 추가해야 합니다.

SYSTEMD_AUTO_ENABLE_${PN} = "enable"

답변2

시작 시 활성화해야 합니다.

systemctl enable boondocks-agent

답변3

나는 같은 문제를 가지고있다. 서비스를 추가했고 부팅 시 타이머가 시작되기를 기대합니다. 내 타이머는 절대 시작되지 않지만 수동으로 시작하여 예상대로 영원히 실행되도록 할 수 있습니다. 내 Yocto 프로젝트가 타이머를 생성하고 시작하기 위해 다음을 추가했습니다.

SYSTEMD_SERVICE_${PN} = " logrotate.service logrotate.timer"

답변4

최근 Yocto 프로젝트를 개발하는 동안 동일한 문제가 발생했습니다. 나는 Yocto 레시피에 다음 줄을 명시적으로 지정했습니다:

SYSTEMD_SERVICE:${PN} = "test.service"
SYSTEMD_AUTO_ENABLE:${PN} = "enable"

그러나 이것은 내 레시피가 systemd에서 명시적으로 상속되도록 해야 한다는 것을 깨닫기 전까지는 작동하지 않았습니다. 내 레시피에 다음 줄을 추가하면 됩니다.

inherit systemd

관련 정보