---
# System prepended metadata

title: 【Doc】自動執行程序
tags: [RockChip]

---


| 方法               | 適合 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

```