Chạy RexAPF CLI trên VPS
Cài và đăng nhập RexAPF CLI qua SSH, giữ daemon chạy sau khi thoát SSH bằng linger và systemd user, xem log và gỡ dịch vụ nền.
Trên trang này
Một VPS chạy RexAPF CLI là máy làm việc luôn bật mà bạn điều khiển từ RexAPF Web ở bất cứ đâu. Bài này hướng dẫn thiết lập qua SSH để daemon vẫn chạy sau khi bạn đăng xuất và tự khởi động lại khi máy reboot.
Thiết lập từ đầu
SSH vào máy và cài CLI
bash$ ssh ban@vps.example.com $ npm install -g @rexllm/rexapfYêu cầu Node.js như ở Cài đặt & đăng nhập.
Đăng nhập không cần trình duyệt trên VPS
bash$ rexapf loginQua SSH, CLI không tự mở trình duyệt. Mở đường dẫn CLI in ra trên máy của bạn, đăng nhập, rồi sao chép toàn bộ URL
http://127.0.0.1:…/oauth/callback?…mà trình duyệt báo lỗi, dán vào terminal SSH và nhấnEnter. Không cần mở cổng hay tạo SSH tunnel.Bật điều khiển từ Web
bash$ rexapf connect ~/du-an --name "VPS"Lệnh đăng ký workspace, bật linger, cài dịch vụ
systemd --uservà khởi động daemon.Nhập mật khẩu sudo nếu được hỏi
Nếu cần quyền quản trị để bật linger, CLI giải thích và chạy
sudo loginctl enable-linger <tên-user>. Nhập mật khẩu một lần.Kiểm tra
bash$ rexapf remote statusDòng Chạy sau khi thoát SSH (linger): bật cho biết daemon sẽ tiếp tục chạy khi bạn thoát SSH.
$ rexapf remote status Điều khiển từ Web: bật Tên máy: VPS Truy cập: theo tài khoản (mọi trình duyệt đăng nhập cùng tài khoản) Agent RexLLM Web giao việc: tắt (bật: rexapf remote agent on) Daemon: đang chạy (pid 41235), relay online Dịch vụ nền: đã cài Chạy sau khi thoát SSH (linger): bật Workspace (1): • /home/ban/du-an Trình duyệt đã ghép (0):
Linger là gì
Trên Linux, systemd-logind mặc định dừng mọi dịch vụ người dùng khi phiên đăng nhập cuối cùng (ví dụ phiên SSH) kết thúc, và không khởi động chúng khi máy bật. "Linger" giữ trình quản lý dịch vụ của người dùng chạy liên tục.
rexapf connect và rexapf daemon install tự bật linger theo thứ tự:
- Trực tiếp bằng
loginctl(khi bạn là root hoặc polkit cho phép). - Qua
sudo -n(sudo không cần mật khẩu). - Qua
sudocó hỏi mật khẩu, nếu bạn đang ở terminal tương tác.
Nếu cả ba đều không được, CLI in lệnh cần chạy và cảnh báo.
Nếu remote status báo linger: TẮT, daemon sẽ dừng khi bạn thoát SSH và RexAPF Web mất kết nối với máy. Nhờ quản trị viên chạy lệnh CLI in ra, thường là sudo loginctl enable-linger <tên-user>, rồi chạy lại rexapf daemon install.
Dịch vụ nền
| Hệ điều hành | Dịch vụ | Tệp định nghĩa |
|---|---|---|
| Linux | systemd --user unit rexapf-daemon.service | ~/.config/systemd/user/rexapf-daemon.service |
| macOS | launchd agent xyz.rexllm.rexapf-daemon | ~/Library/LaunchAgents/xyz.rexllm.rexapf-daemon.plist |
Dịch vụ chạy rexapf daemon run bằng đúng Node và lệnh rexapf đã cài nó, tự khởi động lại sau 5 giây nếu bị lỗi. Biến PATH lúc cài được ghi vào dịch vụ, nên các công cụ tác tử dùng (git, pnpm…) cần có trong PATH khi bạn chạy lệnh cài.
Nếu không dùng được trình quản lý dịch vụ người dùng (ví dụ trong container), CLI chạy daemon thành tiến trình nền tách rời. Tiến trình đó dừng khi máy khởi động lại; chạy lại rexapf connect sau mỗi lần reboot.
Lệnh quản lý daemon
| Lệnh | Tác dụng |
|---|---|
rexapf daemon install | Cài và khởi động daemon nền, giữ chạy sau khi thoát SSH |
rexapf daemon status | Như rexapf remote status |
rexapf daemon logs | In lệnh xem log |
rexapf daemon uninstall | Dừng và gỡ dịch vụ nền |
rexapf daemon run | Chạy daemon ở tiến trình hiện tại |
Trên Linux có dịch vụ systemd, xem log bằng:
$ journalctl --user -u rexapf-daemon.service -fCác trường hợp khác, log nằm ở ~/.dsh/remote/daemon.log.
Nếu daemon install báo Không khởi động được daemon nền, chạy daemon trong tmux hoặc screen:
$ tmux new -s rexapf 'rexapf daemon run'Lưu ý bảo mật
- Tác vụ từ Web chạy không hỏi duyệt nhưng chỉ ghi được trong các workspace đã đăng ký. Không đăng ký thư mục gốc hay
~nếu không cần. - Nếu VPS dùng chung, cân nhắc chuyển sang chính sách
pinbằngrexapf remote policy pin. Xem Điều khiển từ Web. - Thông tin đăng nhập nằm trong
~/.dsh/.credentials.yaml, chỉ người dùng sở hữu đọc được. Xem Tệp cấu hình và Bảo mật & quyền riêng tư. - Muốn ngừng hẳn, chạy
rexapf remote disconnectrồirexapf daemon uninstall.