我已经努力解决这个问题两三天了。我正在使用 Yocto 来定制 Linux 构建。我有一个名为 app2.service 的 systemd 服务,如下所示。
[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"