树莓派 4 在启动时自动启动 Qt 应用程序

如果您为Raspberry Pi 4创建了一个Qt应用程序或任何其他应用程序,您通常希望在应用程序完成后重新启动Raspberry后立即调用该应用程序。 这通常使用可在不同位置输入的启动脚本进行尝试。 但是,通过 systemd 进行设置更合理。我使用了Raspbian-buster-lite图像和Qt安装,如 Raspberry Pi 4上的Qt 中所述作为起点。 Qt应用程序位于目录“/home/pi/application”中,在本例中名为“application_one”。

创建 .service 文件

首先要做的是在 “/etc/systemd/system” 目录中创建一个 .service 文件:

sudo nano application_one.service

现在在此处输入以下内容:

[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

这些条目实际上是不言自明的。应用程序“application_one”(ExecStart=/home/pi/application/application_one)使用用户帐户“pi”(User=pi)启动。条目“After=network-online.target”仍然指出应用程序在建立网络连接之前启动。

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

使系统知道该服务

然后,您必须告诉系统新服务应该处于活动状态:

sudo systemctl enable application_one.service

然后执行重新启动,应用程序应自动启动。

</:code3:>

应用程序没有启动?

如果应用程序没有自动启动,您可以使用

sudo systemctl status application_one.service

显示状态并使用信息进行故障排除。 </:code4:>