# pm2移機

更換主機並繼續使用 `pm2` 管理專案的過程，可以按照以下步驟進行：

---

### 1. **備份現有的專案和配置**

#### (1) 備份專案文件

將原主機的專案目錄打包並下載到本地：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-tar--czf-projects_ba"><div class="overflow-y-auto p-4" dir="ltr">`tar -czf projects_backup.tar.gz /path/to/your/project1 /path/to/your/project2`</div></div>#### (2) 備份 `pm2` 配置

使用 `pm2` 導出當前的進程清單：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-pm2-save"><div class="overflow-y-auto p-4" dir="ltr">`pm2 save`</div></div>保存後的進程清單會存儲在 `~/.pm2/dump.pm2` 中，將此目錄也備份：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-tar--czf-pm2_backup."><div class="overflow-y-auto p-4" dir="ltr">`tar -czf pm2_backup.tar.gz ~/.pm2`</div></div>#### (3) 備份相關環境 (可選)

- 如果你的專案依賴 Node.js，建議記錄當前版本： <div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950"><div class="sticky top-9 md:top-[5.75rem]"></div><div class="overflow-y-auto p-4" dir="ltr">`node -v`</div></div>
- 如果專案使用 `.env` 文件等配置，確保這些文件也被備份。

---

### 2. **準備新主機環境**

#### (1) 安裝 Node.js 和 npm

在新主機上安裝 Node.js，並確保版本與舊主機一致。可以使用以下方式安裝：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-curl--fssl-https%3A%2F%2Fd"><div class="overflow-y-auto p-4" dir="ltr">`curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -sudo apt install -y nodejs`</div></div>(根據你的需求選擇合適的版本)

#### (2) 安裝 pm2

安裝 `pm2`：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-sudo-npm-install--g-"><div class="overflow-y-auto p-4" dir="ltr">`sudo npm install -g pm2`</div></div>---

### 3. **恢復備份**

#### (1) 恢復專案文件

將之前的專案文件和目錄上傳到新主機，然後解壓：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-scp-projects_backup."><div class="overflow-y-auto p-4" dir="ltr">`scp projects_backup.tar.gz user@new-server:/path/to/ssh user@new-servertar -xzf projects_backup.tar.gz -C /desired/path/`</div></div>#### (2) 恢復 `pm2` 配置

將 `pm2_backup.tar.gz` 上傳到新主機並解壓：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-scp-pm2_backup.tar.g"><div class="overflow-y-auto p-4" dir="ltr">`scp pm2_backup.tar.gz user@new-server:/path/to/ssh user@new-servertar -xzf pm2_backup.tar.gz -C ~/`</div></div>然後加載進程清單：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-pm2-resurrect"><div class="overflow-y-auto p-4" dir="ltr">`pm2 resurrect`</div></div>---

### 4. **檢查與測試**

#### (1) 測試專案啟動

使用以下命令確認專案是否正常啟動：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-pm2-list"><div class="overflow-y-auto p-4" dir="ltr">`pm2 list`</div></div>若有任何專案未啟動，檢查日誌：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-pm2-logs"><div class="overflow-y-auto p-4" dir="ltr">`pm2 logs`</div></div>#### (2) 配置自動啟動

確保 `pm2` 配置為開機自動啟動：

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-pm2-startup-pm2-save"><div class="overflow-y-auto p-4" dir="ltr">`pm2 startuppm2 save`</div></div>---

### 5. **更新 DNS 或其他相關配置**

若專案與域名相關，請更新 DNS 或修改其他相關配置，指向新主機的 IP。

---

這樣你就能順利地將專案從舊主機遷移到新主機，同時繼續使用 `pm2` 管理進程。