Nếu bạn đã tạo một ứng dụng Qt - hoặc bất kỳ ứng dụng nào khác - cho Raspberry Pi 4, bạn thường muốn ứng dụng được gọi ngay sau khi khởi động lại Raspberry sau khi ứng dụng đã hoàn tất.
Điều này thường được thử với các tập lệnh bắt đầu có thể được nhập ở nhiều nơi khác nhau.
Tuy nhiên, sẽ hợp lý hơn khi thiết lập điều này thông qua systemd . Tôi đã sử dụng hình ảnh raspbian-buster-lite và cài đặt Qt như được mô tả trong Qt trên Raspberry Pi 4 làm điểm khởi đầu.
Ứng dụng Qt nằm trong thư mục "/home/pi/application" và được đặt tên là "application_one" trong ví dụ này.

Tạo tệp .service

Điều đầu tiên cần làm là tạo tệp .service trong thư mục "/etc/systemd/system":

sudo nano application_one.service

Sau đây hiện được nhập vào đây:

[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

Các mục thực sự tự giải thích. Ứng dụng "application_one" (ExecStart = / home / pi / application / application_one) được bắt đầu với tài khoản người dùng "pi" (User=pi). Mục "After = network-online.target" vẫn nói rằng ứng dụng được khởi động cho đến khi kết nối mạng được thiết lập.

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

Làm cho dịch vụ được hệ thống biết đến

Sau đó, bạn phải nói với hệ thống rằng dịch vụ mới sẽ hoạt động:

sudo systemctl enable application_one.service

Sau đó thực hiện khởi động lại và ứng dụng sẽ tự động khởi động.

</:code3:>

Ứng dụng không khởi động?

Nếu ứng dụng không tự động khởi động, bạn có thể đăng nhập bằng

sudo systemctl status application_one.service

Hiển thị trạng thái và sử dụng thông tin để khắc phục sự cố. </:code4:>

Walter Prechtl

Walter Prechtl

Cập nhật tại:: 08. March 2024
Thời gian đọc: 1 minute