常见问答

Häufig gestellte Fragen

Run applications automatically after booting by Yocto  Datum:2025-01-17

Run applications after system boot Linux kernel built by Yocto use systemd initialization, so we need to add a system service to run the applications which you want to run

1. 

Create systemd service file named run-before-login-prompt.service and edit the content below:

/home/root/demo.sh is the application you want to run after booting.

 
[Unit]
Description=Run script with systemd right before login prompt

[Service]
Type=idle
RemainAfterExit=yes
ExecStart=/home/root/demo.sh
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
2. Put the service file to target board /lib/systemd/system/run-before-login-prompt.service
3. Reboot the device and it will run after booting
4. You can also use Yocto recipe to add the service file to /lib/systemd/system/
5. Refer to FAQ_MA35D1_Add a New Recipe in Yocto. This recipe demonstrates how to install a file to the root filesystem and run it after booting:
 
SUMMARY = "Demo how to install files to root filesystem and run after booting"
LICENSE = "CLOSED"
inherit systemd
SYSTEMD_AUTO_ENABLE = "enable"
SYSTEMD_SERVICE_${PN} = "run-before-login-prompt.service"
SRC_URI = "file://run-before-login-prompt.service \
           file://demo.sh \
          "
S = "${WORKDIR}"

do_install() {    
    install -d ${D}/${ROOT_HOME}
    install -m 0777 ${S}/demo.sh ${D}${ROOT_HOME}/demo.sh

    install -d ${D}/${systemd_unitdir}/system
    install -m 0644 ${S}/run-before-login-prompt.service ${D}${systemd_unitdir}/system
}

FILES_${PN} = "${bindir} ${systemd_unitdir}/system/* ${ROOT_HOME}"
Produkte: Mikroprozessoren ,Arm Cortex-A35 MPUs
Applikationen:
Funktion: Others,Auto run,Boot source,systemd,Yocto