| 方法 | 適合 GUI App | 適合 CLI App | 執行時機 | 優點 | 缺點 | | ---------------- | ---------------------------------- | ---------- | ------------ | -------------------- | ---------------------------- | | **方法一:Systemd** | ❌(除非設定完整 `DISPLAY` + `XAUTHORITY`) | ✅ | 系統一開機就執行 | 適合背景服務、無人機器、穩定性高 | 設定 GUI app 容易出錯(如你遇到的 Qt 問題) | | **方法二:.profile** | ❌ | ✅ | 使用者登入「文字介面」時 | 最簡單方式,無需額外檔案 | 不適用 GUI 程式;不一定被桌面環境執行 | | **方法三:.desktop** | ✅ ✅ | ❌ | 使用者登入「圖形介面」後 | 適合桌面應用、易維護、支援圖形化設計工具 | 僅當桌面環境啟動時才會執行 | --- ## 方法一 : Service 自動開機 創造 service $ sudo nano /etc/systemd/system/memryx_run.service ``` [Unit] Description=MemryX VMS Demo Autostart After=network.target graphical.target [Service] User=memryx WorkingDirectory=/home/memryx/Desktop/memryx/MX_DEMOS/build ExecStart=/home/memryx/Desktop/memryx/MX_DEMOS/build/demo_yolov8_embedded_async Restart=always RestartSec=5 Environment=DISPLAY=:0 Environment=XAUTHORITY=/home/memryx/.Xauthority [Install] WantedBy=multi-user.target ``` 開啟服務 * 讓 systemd 重新載入服務 $ sudo systemctl daemon-reload * 啟用開機自動啟動 $ sudo systemctl enable memryx_run.service * 馬上啟動來測試看看 $ sudo systemctl start memryx_run.service * 查狀態 $ sudo systemctl status memryx_run.service --- ## 方法二 : .profile 自動開機 $ sudo apt install gnome-terminal $ vi ~/run_demoVMS.sh ``` #!/bin/bash sleep 5 cd /home/orangepi/Desktop/MemryX/v1.2.1/MX_DEMOS/build ./demoVMS ``` $ sudo chmod -R 777 run_demoVMS.sh $ vi ~/.profile ``` # === Auto run demoVMS after login === gnome-terminal -e /home/orangepi/run_demoVMS.sh & ``` --- ## 方法三 : .desktop 自動開機 $ vi ~/run_demoVMS.sh ``` #!/bin/bash sleep 5 cd /home/orangepi/Desktop/MemryX/v1.2.1/MX_DEMOS/build ./demoVMS ``` $ chmod +x ~/run_demoVMS.sh $ mkdir -p ~/.config/autostart $ vi ~/.config/autostart/run_demoVMS.desktop ``` [Desktop Entry] Type=Application Name=MemryX YOLOv8 Demo Exec=/home/memryx/run_demoVMS.sh X-GNOME-Autostart-enabled=true NoDisplay=false ``` --- ## 自動按 ESC $ sudo apt install xdotool -y $ vi ~/.config/autostart/close_overview.desktop ``` [Desktop Entry] Type=Application Exec=sh -c "sleep 2 && xdotool key Escape" Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name=AutoExitOverview ```