저는 이 문제를 해결하기 위해 2~3일 동안 노력해 왔습니다. 저는 Yocto를 사용하여 Linux 빌드를 사용자 정의하고 있습니다. 아래와 같이 app2.service라는 시스템 서비스가 있습니다.
[Unit]
Description=app2
ConditionPathExists=/app
After=network.target uncrypte_app.service uncrypte_data.service
[Service]
Type=simple
WorkingDirectory=/app
ExecStartPre=/bin/rm -f /var/run/appd.pid
ExecStartPre=/app/provisiondevice && /storage/revertupdate
ExecStart=/app/appd start
ExecStop=/app/appd stop
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target
아래는 내 .bb 레시피 파일의 하단입니다.
SYSTEMD_SERVICE_${PN}="app2.service"Yocto는 다음과 같습니다.systemctl은 app2.service를 활성화합니다.
FILES_${PN} += "app"
FILES_${PN} += "/persist_storage \
/storage \
"
FILES_${PN} += "${sysconfdir} \
${systemd_unitdir}/system/app2.service \
"
inherit systemd
SYSTEMD_SERVICE_${PN} = "app2.service"
그런데 장치가 부팅되면 서비스가 시작되지 않습니다.
서비스 상태를 확인할 때systemctl 상태 app2.service, 나는 다음과 같은 결과를 얻습니다
● app2.service - app2
Loaded: loaded (/lib/systemd/system/app2.service; disabled; vendor
preset: enabled)
Active: inactive (dead)**
나는 이것을 이해하지 못한다. 수동으로 활성화하면systemctl은 app2.service를 활성화합니다.,좋은 결과.
레시피 파일에 지정한 대로 자동으로 활성화되어야 합니다. 도움을 주시면 감사하겠습니다.
또한 레시피 파일 하단에 다음을 추가해도 작동하지 않습니다.
SYSTEMD_AUTO_ENABLE_${PN} = "enable"