Skip to content

Systemd Service ​

Tổng quan ​

Trang Service cho phép bạn chạy các chương trình cần hoạt động liên tục, như ứng dụng Node.js, queue worker hay bot, dưới dạng systemd service trên máy chủ. FlashPanel đọc từng service trực tiếp từ máy chủ, nên thông tin bạn thấy luôn khớp với những gì đang chạy thực tế. Bạn có thể tạo, chỉnh sửa, khởi động, dừng và khởi động lại service, chọn việc tự khởi động cùng máy chủ và xem log.

Để mở trang, vào trang quản lý máy chủ và chọn Service trong menu.

Danh sách service ​

Bảng liệt kê các service mà FlashPanel đang quản lý trên máy chủ, sắp xếp theo tên, mỗi trang 10 service. Dùng ô chọn ở cuối bảng để hiện nhiều dòng hơn mỗi trang hoặc hiện tất cả. Bấm vào tiêu đề cột để sắp xếp theo cột đó.

Mỗi dòng gồm:

  • Mũi tên mở rộng (cột đầu tiên): Bấm vào mũi tên, hoặc bất kỳ chỗ nào trên dòng, để xem toàn bộ nội dung file unit của service. Bấm lại để thu gọn.
  • Tên: Tên service. Bên cạnh tên có thể có hai dấu hiệu:
    • Biểu tượng ổ khoá: service hệ thống do gói phần mềm cài sẵn (ví dụ redis hoặc nginx). Không thể chỉnh sửa hay xoá service này khỏi máy chủ.
    • Nhãn tên ứng dụng (ví dụ Meilisearch, MTProxy hoặc Tomcat): service do ứng dụng đó tạo ra.
  • Trạng thái: Tình trạng hiện tại của service.
    • Kích hoạt (xanh lá): Service đang chạy.
    • Ngừng kích hoạt (xám): Service đã dừng.
    • Thất bại (đỏ): Service bị dừng do lỗi. Hãy xem log của service.
    • Các trạng thái khác như activating (cam) nghĩa là service đang chuyển trạng thái.
  • Khởi động: Bật công tắc để service tự khởi động khi máy chủ khởi động.
  • Thao tác:
    • Nút Khởi động, Dừng và Khởi động lại điều khiển service ngay lập tức. Nút Khởi động bị làm mờ khi service đang chạy, nút Dừng bị làm mờ khi service đã dừng.
    • Nút Xem Log mở log của service (xem phần Xem log). Nút chuyển sang màu đỏ khi service bị lỗi.
    • Menu ⋮ chứa Chỉnh sửa, Sao Chép và Xóa. Xem các phần bên dưới.

Khi một thao tác đang chạy trên service nào, chỉ dòng của service đó bị khoá. Bạn vẫn thao tác được với các service khác.

Phía trên bảng:

  • Bấm Toàn bộ, Kích hoạt, Thất bại hoặc Ngừng kích hoạt để chỉ hiện các service ở trạng thái đó. Mỗi bộ lọc hiện kèm số lượng service, giúp bạn thấy ngay service nào đang lỗi.
  • Ở nhóm Khởi động, bấm Toàn bộ, Đã bật hoặc Đã tắt để lọc theo thiết lập ở cột Khởi động. Bộ lọc này dùng được cùng lúc với bộ lọc trạng thái, ví dụ để tìm service đang dừng nhưng vẫn khởi động cùng hệ thống.
  • Nhập vào ô Tìm Kiếm để lọc service theo tên.
  • Bấm Làm mới để đọc lại toàn bộ service từ máy chủ.

Trạng thái của các service tự làm mới mỗi 30 giây khi trang đang mở. Thời điểm cập nhật gần nhất hiện phía trên bảng.

Nếu không kết nối được máy chủ, thông báo lỗi sẽ hiện phía trên bảng. Hãy kiểm tra máy chủ đang hoạt động rồi bấm Làm mới.

Điều khiển nhiều service cùng lúc ​

  1. Đánh dấu ô chọn của các service cần điều khiển. Số service đã chọn hiện phía trên bảng.
  2. Bấm một trong các nút bên cạnh: Khởi động, Khởi động lại, Dừng, Khởi động cùng hệ thống hoặc Không khởi động cùng hệ thống.

Thao tác được gửi cho tất cả service đã chọn cùng lúc và bỏ chọn sau khi gửi. Nếu một số service bị lỗi, một thông báo duy nhất liệt kê các service đó kèm lý do.

Xem log ​

  1. Bấm nút Xem Log của service. Log mở trong một cửa sổ nổi, bạn có thể di chuyển, đổi kích thước hoặc thu nhỏ cửa sổ.

  2. Chọn loại log cần xem:

    • Kết quả: File log đầu ra của chương trình.
    • Lỗi: File log lỗi của chương trình.
    • Journal: Journal của systemd cho service này. Luôn có sẵn, kể cả với service không ghi log ra file.

    Kết quả và Lỗi chỉ hiện khi service ghi log ra file.

  3. Chọn Số dòng cần xem, tính từ các dòng mới nhất.

  4. Bật Tự động làm mới để tải lại log mỗi 5 giây, hoặc bấm nút làm mới để tải lại một lần.

Màu sắc do chương trình ghi ra được hiển thị như trong terminal. Đường dẫn file log hiện ở góc trên bên phải cửa sổ.

Tạo service ​

  1. Bấm Tạo Service.
  2. Nhập Tên: chỉ gồm chữ cái, chữ số, dấu gạch ngang và gạch dưới, tối đa 32 ký tự, không bắt đầu bằng chữ số. Chữ hoa và chữ có dấu sẽ được chuyển đổi, ví dụ MyApp được lưu thành myapp. Tên sẽ được lưu hiện ngay dưới ô nhập.
  3. Khai báo service ở một trong hai tab:
    • Thiết lập nhanh (mặc định): Điền form, file unit sẽ được tạo tự động.

      • Lệnh: Lệnh đầy đủ để chạy chương trình, bắt đầu bằng đường dẫn tuyệt đối của chương trình, ví dụ /usr/bin/node /home/flashpanel/app/server.js. Đây là thông tin bắt buộc.
      • Thư mục làm việc: Thư mục mà chương trình chạy trong đó. Không bắt buộc. Bấm vào ô để chọn nhanh thư mục của các site trên máy chủ, hoặc nhập đường dẫn khác.
      • Chạy bằng user: User Linux chạy chương trình. Mặc định là root.
      • Chính sách khởi động lại: Luôn khởi động lại, Khởi động lại khi lỗi hoặc Không khởi động lại.
      • Biến môi trường: Mỗi dòng một biến, ví dụ NODE_ENV=production. Không bắt buộc.

      Log được ghi vào /var/log/services/<tên>.log và /var/log/services/<tên>-error.log.

    • File unit: Tự sửa nội dung file unit trong trình soạn thảo. Mở tab này sau khi điền Thiết lập nhanh để xem hoặc tinh chỉnh nội dung được tạo. Quay lại tab Thiết lập nhanh thì nội dung sẽ được tạo lại từ form.

      • Điền ExecStart là lệnh khởi chạy chương trình của bạn. Cảnh báo sẽ hiện dưới trình soạn thảo khi ExecStart còn trống.
      • Đường dẫn file log được điền theo tên service và tự cập nhật khi bạn đổi tên, cho tới khi bạn tự sửa nội dung.
  4. Chọn Khởi động cùng với hệ thống để service tự khởi động khi máy chủ khởi động.
  5. Bấm Tạo Service.

Service được tạo và khởi động. Theo dõi tiến trình trong sự kiện vừa xuất hiện.

Quản lý service đã có sẵn trên máy chủ ​

Để quản lý một service bạn đã tự tạo trên máy chủ:

  1. Bấm Tạo Service, nhập tên service đó rồi mở tab File unit.
  2. Bấm Tạo Service. Có thể bỏ qua cảnh báo ExecStart đang trống.

Service được thêm vào danh sách và giữ nguyên nội dung, nội dung trong trình soạn thảo sẽ bị bỏ qua.

Nếu muốn thay bằng nội dung của bạn, chọn Ghi đè nếu đã tồn tại trước khi bấm Tạo Service. Khi đó nội dung phải có ExecStart. Service được khởi động lại với nội dung mới.

Chỉnh sửa service ​

  1. Mở menu ⋮ của service và bấm Chỉnh sửa.
  2. Sửa nội dung file unit trong trình soạn thảo. Nội dung phải có ExecStart trong section [Service], nếu không nút Sửa Service sẽ bị khoá.
  3. Bấm Sửa Service.

Service được khởi động lại với nội dung mới. Thiết lập ở cột Khởi động không thay đổi.

Không thể đổi tên service. Muốn đổi tên, hãy sao chép service với tên mới rồi xoá service cũ.

Sao chép service ​

  1. Mở menu ⋮ của service cần sao chép và bấm Sao Chép.
  2. Nhập tên cho service mới. Nội dung của service gốc được sao chép vào trình soạn thảo, đường dẫn file log và Description tự đổi theo tên mới khi bạn gõ.
  3. Cập nhật phần nội dung còn lại nếu cần, ví dụ cổng hoặc thư mục làm việc.
  4. Khởi động cùng với hệ thống được chọn sẵn. Bỏ chọn nếu không cần.
  5. Bấm Tạo Service.

Xoá service ​

  1. Mở menu ⋮ của service và bấm Xóa.
  2. Chọn một trong hai cách:
    • Gỡ khỏi danh sách: Ngừng quản lý service tại đây. Không thay đổi gì trên máy chủ và service vẫn tiếp tục chạy. Bạn có thể thêm lại sau bằng cách tạo service cùng tên.
    • Xoá khỏi máy chủ: Dừng service, tắt khởi động cùng hệ thống, rồi xoá file unit và file log trong /var/log khỏi máy chủ.
  3. Bấm nút xác nhận.

Không thể chọn Xoá khỏi máy chủ với:

  • Service hệ thống do gói phần mềm cài sẵn (có biểu tượng ổ khoá).
  • Service do ứng dụng còn đang cài tạo ra. Hãy gỡ ứng dụng đó thay vì xoá service.

Ghi chú và cảnh báo ​

  • Lưu ý: Không thể tạo, chỉnh sửa hay xoá các service hệ thống do gói phần mềm cài sẵn như nginx, ssh, mysql hoặc redis tại đây. Điều này giúp bảo vệ các service mà máy chủ cần để hoạt động.
  • Lưu ý: Nếu file unit của service bị xoá trực tiếp trên máy chủ, service sẽ được gỡ khỏi danh sách ở lần mở trang tiếp theo.
  • Lưu ý: Mỗi lần xem log chỉ hiện tối đa 1 MB cuối của log.
  • Cảnh báo: Xoá khỏi máy chủ không thể hoàn tác. File unit và file log bị xoá vĩnh viễn. Hãy dùng Gỡ khỏi danh sách nếu bạn chỉ muốn ngừng quản lý service.
  • Cảnh báo: Hãy để mỗi service ghi vào file log riêng. Khi xoá service khỏi máy chủ, các file log khai báo trong file unit của service đó cũng bị xoá, kể cả khi service khác đang ghi vào cùng file.
  • Cảnh báo: Service chạy với quyền của User khai báo trong file unit. Tránh dùng root trừ khi chương trình thực sự cần.