Quản lý service
Cửa sổ Service List
Service List là trung tâm điều khiển của WinWraper, nơi bạn xem và thao tác với tất cả service đang được quản lý.
| # | Thư mục | File thực thi | PID | Cổng | Loại | Trạng thái | Thời gian chạy | CPU | RAM | Crash | Win Service | Auto-Restart | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | my-backend | node index.js | 4821 | 3000 | Node.js | ● Đang chạy | 1h 0m | 2.1% | 128 MB | 0 | ● Đang chạy (WinSvc) | ||
| 2 | next-storefront | next start | 4822 | 3001 | Next.js | ● Đang chạy | 30m 20s | 4.6% | 213 MB | 0 | — | ||
| 3 | ml-worker | python main.py | — | — | Python | ○ Đã dừng | — | — | — | 2 | — | ||
| 4 | data-exporter | DataExport.exe | 9104 | 9200 | Console | ● Đang chạy | 12m 4s | 1.2% | 64 MB | 0 | ● Đang chạy (WinSvc) | ||
| 5 | log-collector | LogService.exe | — | — | Console | ○ Đã dừng | — | — | — | 1 | — |
Ý nghĩa các cột
Danh sách hiển thị các cột sau (đúng thứ tự xuất hiện trong app):
| Cột | Mô tả |
|---|---|
| # | Số thứ tự dòng |
| Tên | Tên service bạn đặt |
| File thực thi | Đường dẫn file/script đang được wrap |
| PID | Process ID khi service đang chạy |
| Cổng | Port mà service đang lắng nghe (nếu có) |
| Loại | Badge màu: Node.js, Python, .exe, Next.js, Ruby, ... |
| Trạng thái | Running, Stopped, Starting, Restarting, ⛔ Mất kết nối, ⚠ Thiếu đường dẫn, ⚠ Thiếu Runtime,, Tắt |
| Thời gian chạy | Service đã chạy liên tục bao lâu (uptime của lần khởi động hiện tại) |
| CPU | % CPU đang dùng hiện tại |
| RAM | Lượng RAM đang dùng (MB) |
| Crash | Số lần crash của lần chạy hiện tại / tổng lifetime (ví dụ 2/15) |
| Win Service | Trạng thái Windows Service (SCM): Running / Stopped / Not Registered |
| Auto-Restart | Công tắc bật/tắt tự khởi động lại khi crash (bấm trực tiếp trên dòng) |
| Health | Healthy / Unhealthy / Unknown, chỉ hiện với service có cấu hình Health Check |
Sắp xếp & lọc
- Click vào tiêu đề cột để sắp xếp tăng/giảm.
- Công tắc "Ẩn service đã bị vô hiệu" ở thanh công cụ: bật để ẩn các service đang bị vô hiệu hoá, tắt để hiển thị lại.
Cài đặt nhanh (Quick Add)
Nút ⚡ Cài đặt nhanh ▾ mở danh sách các ứng dụng đã biết mà WinWraper có thể tự cài đặt giúp bạn (không phải preset framework).
Quick Add, Thêm service bằng menu nhanh
Nhấn Quick Add để chọn loại service có sẵn và điền thông tin cấu hình.
| # | Tên | Tệp thực thi | PID | Cổng | Loại | Status | RAM | Crash | Windows Service | Auto-Restart | Sức khoẻ | Thao tác |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | openclaw.exe | 26576 | 3100 | Console | ● Running | 371 MB | — | ● Online |
Hiện danh sách gồm:
- OpenClaw Gateway, AI gateway chạy trong WSL2 (Setup / Install hoặc Uninstall). Xem WSL2 & OpenClaw.
- WSL2 Manager, Cài / gỡ Linux distro trên Windows.
- NPM in WSL, Cài Node.js LTS vào WSL2 distro.
Chọn một mục và WinWraper sẽ mở wizard từng bước cho bạn.
Thêm service tự chọn (Add Service Dialog)
Để thêm bất kỳ ứng dụng nào của bạn, dùng nút ➕ Thêm service:
Thêm service mới
Các loại runtime được hỗ trợ
| Loại | Mô tả |
|---|---|
| Executable (.exe) | File thực thi Windows bất kỳ |
| Node.js | Script Node.js, WinWraper tự tìm node.exe |
| Python | Script Python, tự tìm python.exe / python3 |
| Next.js | Project Next.js, chạy npm start tự động |
| Ruby | Script Ruby, tự tìm ruby.exe |
| Ruby on Rails | App Rails, detect bundle exec rails server |
| Custom | Bất kỳ interpreter nào, nhập đường dẫn thủ công |
ℹ️Ghi chú
Chế độ Run-In-Place: WinWraper không copy file, service chạy trực tiếp từ thư mục gốc của bạn. Thay đổi file code ngay lập tức được áp dụng sau khi restart service.
Cấu hình hệ thống chung
Để thay đổi các tùy chọn chung, bạn nhấp vào nút ⚙ Cấu hình (hoặc biểu tượng bánh răng trên toolbar). Một cửa sổ mới sẽ hiện ra với các cấu hình sau:
Các tuỳ chọn trong cửa sổ Cấu hình
- Tự động chạy tất cả service khi mở ứng dụng: Tự động bật tất cả dịch vụ đang hoạt động ngay khi WinWraper khởi động.
- Khởi động cùng Windows: Tự động chạy WinWraper khi bạn mở máy tính và đăng nhập vào Windows.
- Ngôn ngữ: Chuyển đổi linh hoạt giữa Tiếng Việt và English (áp dụng ngay lập tức mà không cần mở lại app).
- Danh sách service: Hiển thị toàn bộ dịch vụ được nhóm theo thư mục. Mỗi dòng có một ô tích chọn Bật (Enabled).
ℹ️Thông tin
Auto-Restart (Tự khởi động lại khi crash) không nằm ở đây. Bạn có thể bật/tắt nhanh bằng công tắc trực tiếp trên cột Auto-Restart trong bảng danh sách chính, hoặc nhấp chuột phải trên dòng dịch vụ.
Bật / Tạm ẩn (Vô hiệu hoá) dịch vụ
- Bật dịch vụ (Enabled): Dịch vụ hiển thị đầy đủ trong danh sách chính, sẵn sàng để khởi động hoặc dừng.
- Tạm ẩn dịch vụ (Disabled): Dịch vụ bị ẩn đi (hoặc hiển thị màu xám mờ với trạng thái
— Tắt). Dịch vụ này sẽ không tự khởi động. Tiện lợi khi bạn muốn tạm dừng chạy dự án nào đó một thời gian mà không muốn xóa hẳn cấu hình.
Cách bật lại dịch vụ đang bị ẩn:
- Nếu bạn đang bật tùy chọn "Ẩn service đã bị vô hiệu", hãy tắt nó đi để thấy lại dịch vụ bị ẩn.
- Nhấp chuột phải vào dòng dịch vụ đang bị tắt đó → chọn ✓ Bật service.
Cách tạm ẩn (vô hiệu hóa) dịch vụ đang hoạt động:
- Nhấn nút ⚙ Cấu hình trên toolbar.
- Bỏ tích chọn ở dịch vụ tương ứng trong danh sách rồi đóng cửa sổ cấu hình lại.
⚡ Tính năng tự động cài đặt thư viện (Dependencies Installer)
Khi bạn khởi động một dịch vụ chạy bằng Node.js, Python hoặc Ruby lần đầu tiên, WinWraper sẽ tự động kiểm tra xem các thư viện cần thiết đã được cài đặt hay chưa (ví dụ: thư mục node_modules đối với Node.js, hay các thư viện trong file requirements.txt của Python).
Nếu phát hiện thiếu thư viện, WinWraper sẽ ngăn việc lỗi crash xảy ra và hiển thị hộp thoại cảnh báo thông minh:
- Cài đặt && Khởi động: Tự động mở tiến trình cài đặt nền một cách an toàn. Bạn sẽ thấy trực tiếp nhật ký tải thư viện hiện ra trên giao diện. Khi hoàn tất, WinWraper tự chạy dịch vụ luôn.
- Bỏ qua && Khởi động luôn: Dành cho người dùng nâng cao muốn chạy dịch vụ mà không cần cài thêm gì.
- Hủy: Hủy bỏ tiến trình khởi động để bạn kiểm tra lại code.
Tính năng này giúp bạn vận hành dự án vô cùng nhanh chóng, tiết kiệm hàng giờ gõ lệnh cài đặt thủ công!
Xoá dịch vụ
Nếu bạn không muốn quản lý một dịch vụ nữa:
- Nhấp chuột phải vào dịch vụ đó → chọn 🗑 Xóa service.
- Xác nhận trên hộp thoại hiện ra.
⚠️Lưu ý
Cực kỳ an toàn: Xóa dịch vụ trong WinWraper chỉ là gỡ bỏ sự quản lý của phần mềm đối với dự án của bạn. File code, thư mục gốc của bạn trên ổ đĩa hoàn toàn được giữ nguyên, không lo bị mất dữ liệu! (Tuy nhiên, nếu dịch vụ đang đăng ký chạy dưới dạng Windows Service, bạn hãy chọn 🔧 Hủy đăng ký Win Service trước khi xóa).
Menu chuột phải (Context Menu) đầy đủ
Khi nhấp chuột phải vào bất kỳ dòng dịch vụ nào, bạn sẽ mở ra bảng hành động mạnh mẽ:
- ▶ Start / ■ Stop / ↺ Restart: Điều khiển trạng thái chạy của dịch vụ.
- ✓ Bật service: Kích hoạt lại dịch vụ nếu đang bị vô hiệu hóa.
- 🔧 Đăng ký làm Win Service / 🔧 Hủy đăng ký Win Service: Quản lý chạy ẩn cùng hệ điều hành Windows SCM (yêu cầu quyền Admin).
- ▶ Chạy Win Service / ■ Dừng Win Service: Bật/tắt dịch vụ hệ thống SCM trực tiếp trong app.
- Xem tài nguyên sử dụng (24h): Xem biểu đồ chi tiết CPU, RAM, thời gian chạy liên tục.
- ⬛ Giấu cửa sổ / ↗ Khôi phục cửa sổ: Tính năng độc quyền cho dịch vụ loại Win UI. Giúp thu gọn cửa sổ của ứng dụng xuống góc màn hình hoặc khôi phục lại khi cần.
- Tải Node.js... / Tải Python... / Tải Ruby...: Hiển thị khi máy của bạn thiếu môi trường chạy, nhấp để mở nhanh trang tải chính thức.
- 🗑 Xóa service: Gỡ dịch vụ ra khỏi danh sách quản lý.
- Manage OpenClaw (chỉ có trên OpenClaw Gateway): Mở cấu hình nhanh model, API key của AI Gateway.
ℹ️Ghi chú
Mẹo mở nhanh thư mục chứa: Bạn chỉ cần Double-click (nhấp đúp) trực tiếp vào dòng dịch vụ trong danh sách, WinWraper sẽ tự động mở thư mục chứa dịch vụ đó trong Windows Explorer! (Không áp dụng với OpenClaw chạy trong WSL2).
Tiếp theo: Đăng ký Windows Service →