如果您为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:>