Raspberry Pi 4 autostart aplicativo Qt no momento da inicialização

Se você criou um aplicativo Qt - ou qualquer outro aplicativo - para o Raspberry Pi 4, você geralmente deseja que o aplicativo seja chamado imediatamente após reiniciar o Raspberry depois que o aplicativo tiver sido concluído.
Isso geralmente é tentado com scripts de início que podem ser inseridos em vários lugares.
No entanto, é mais razoável configurar isso via systemd . Eu usei uma imagem raspbian-buster-lite e uma instalação Qt como descrito no Qt no Raspberry Pi 4 como ponto de partida.
O aplicativo Qt está localizado no diretório "/home/pi/application" e é chamado "application_one" neste exemplo.

Criando um arquivo .service

A primeira coisa a fazer é criar um arquivo .service no diretório "/etc/systemd/system":

sudo nano application_one.service

O seguinte está agora inserido aqui:

[Unit]
Description=Qt application autostart
After=graphical.target
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/application
ExecStart=/home/pi/application/application_one

[Install]
WantedBy=multi-user.target

Os verbetes são, na verdade, autoexplicativos. O aplicativo "application_one" (ExecStart=/home/pi/application/application_one) é iniciado com a conta de usuário "pi" (User=pi). A entrada "After=network-online.target" ainda indica que o aplicativo é iniciado até que a conexão de rede seja estabelecida.

</:code2:></:code1:>

Tornar o serviço conhecido pelo sistema

Em seguida, você deve dizer ao sistema que o novo serviço deve estar ativo:

sudo systemctl enable application_one.service

Em seguida, execute uma reinicialização e o aplicativo deve iniciar automaticamente.

</:code3:>

O aplicativo não inicia?

Se o aplicativo não iniciar automaticamente, você poderá fazer login com

sudo systemctl status application_one.service

Exiba o status e use as informações para solucionar problemas. </:code4:>