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:>