Được xuất bản vào ngày 19 tháng 4 năm 2026, 10:00 sáng EDT
Kinh nghiệm của Afam trong lĩnh vực xuất bản công nghệ bắt đầu từ năm 2018, khi anh làm việc cho Make Tech Easier. Trong những năm qua, ông đã tạo dựng được danh tiếng nhờ xuất bản các bài viết hướng dẫn, đánh giá, thủ thuật và giải thích chất lượng cao, bao gồm Windows, Linux và các công cụ nguồn mở. Tác phẩm của anh đã được giới thiệu trên các trang web hàng đầu, bao gồm cả Digital Ustad, Windows Report, Guiding Tech, Alphr và Next of Windows.
Anh có bằng đầu tiên về Khoa học Máy tính và là người ủng hộ mạnh mẽ quyền riêng tư và bảo mật dữ liệu, với một số mẹo, video và hướng dẫn về chủ đề này được đăng trên kênh YouTube Fuzo Tech.
Khi không làm việc, anh ấy thích dành thời gian cho gia đình, đạp xe hoặc chăm sóc khu vườn của mình.
Tôi thích sử dụng Linux vì tính ổn định của nó. Tuy nhiên, máy chủ tại nhà của tôi, hoạt động 24/7, dường như đã đẩy nó đến giới hạn và tôi đã thấy nó bị treo ở một số thời điểm tồi tệ nhất có thể xảy ra. Đôi khi, tôi phải can thiệp và khởi động lại thủ công để hộp điều khiển từ xa của tôi trực tuyến trở lại.
Nếu đây là tình huống bạn gặp phải thì Linux có một hệ thống tích hợp sẵn hoàn hảo cho những tình huống như vậy. Kết hợp nó với service recovery của systemd mang lại cho tôi cơ chế khôi phục sự cố hai lớp hiệu quả mà không cần sự can thiệp vật lý.
Liên quan
Linux đã có sẵn cơ chế phục hồi
Bộ đếm thời gian giám sát bảo vệ hệ thống của bạn
Linux có một tính năng tích hợp được gọi là cơ quan giám sát, hoạt động dựa trên nguyên tắc hệ thống thường xuyên gửi tín hiệu cho thấy nó vẫn hoạt động. Khi không nhận được tín hiệu từ hệ thống, cơ quan giám sát sẽ cho rằng có sự cố và kích hoạt khởi động lại. Tính năng này đã tồn tại từ giữa những năm 1990 trên Linux và được sử dụng chủ yếu trên các hệ thống mà thời gian hoạt động là không thể thương lượng, như máy chủ và hệ thống nhúng.
Trên một số hệ thống, cơ quan giám sát được hiển thị thông qua /dev/watchdog tệp thiết bị, trong khi trên các tệp khác, nó có thể là /dev/watchdog0 . Một quá trình phải ghi vào tệp này để đặt lại đồng hồ đếm ngược. Nếu quá trình ngừng ghi, điều đó thường có nghĩa là hệ thống bị đóng băng hoặc tài nguyên đã bị tiêu tốn bởi một quá trình chạy trốn. Trong trường hợp như vậy, bộ hẹn giờ sẽ hết hạn và đó là cách quá trình khởi động lại được kích hoạt.
Có hai loại cơ quan giám sát:phần cứng và phần mềm (softdog). Đầu tiên có thể là cơ chế phần cứng trên bo mạch chủ. Nó luôn có khả năng thiết lập lại hệ thống, ngay cả khi kernel bị khóa hoàn toàn. Tiếp theo là phiên bản phần mềm chạy bên trong kernel và không cần thêm bất kỳ phần cứng nào. Tuy nhiên, phiên bản này không cứu bạn nếu có sự cố kernel.
<đầu>Nhập
Cần phần cứng chuyên dụng
Sống sót sau sự cố kernel cứng
Phù hợp nhất cho
Cơ quan giám sát phần cứng
Có
Có
Máy chủ, hệ thống quan trọng luôn hoạt động
Phần mềm (softdog)
Không
Không
Máy chủ gia đình, máy ảo, giàn khoan đa năng
Cơ quan giám sát phần mềm rất phù hợp để giải quyết các tình trạng treo thường gặp mà hầu hết các thiết lập gặp phải, chẳng hạn như tăng đột biến tải, cạn kiệt bộ nhớ và các quá trình chạy trốn. Tuy nhiên, tính năng này bị tắt theo mặc định và việc định cấu hình sai tính năng này có thể khiến hệ thống phải khởi động lại nhiều lần và không cần thiết. Điều đó có nghĩa là nó đã trở thành một trong những tính năng Linux ẩn mà tôi yêu thích.
Thiết lập khôi phục sự cố tự động trong vài phút
Một thiết lập cơ quan giám sát thực tế hoạt động thực sự
softdog đã hoạt động trên hầu hết các bản phân phối Linux nên bạn không cần phần cứng mới. Điểm bắt đầu của bạn là tải mô-đun bằng lệnh này:
sudo modprobe softdog
Để đảm bảo rằng softdog vẫn tồn tại sau khi khởi động lại, hãy mở tệp tại /etc/modules (Debian/Ubuntu), thêm softdog vào dòng riêng của nó và lưu nó. Bây giờ hãy cài đặt trình nền của cơ quan giám sát và kích hoạt nó bằng các lệnh bên dưới:
sudo apt install watchdog
sudo systemctl enable --now watchdog
Sau khi hoàn thành việc này, đã đến lúc mở /etc/watchdog.conf và tập trung vào một số cài đặt quan trọng:
<đầu>Cài đặt
Nó kiểm soát những gì
Điểm khởi đầu thực tế
khoảng
Tần suất hệ thống kiểm tra
10 giây
tải tối đa-1
Tải trần trung bình trước khi khởi động lại
~6× số lõi CPU
bộ nhớ tối thiểu
Giải phóng sàn bộ nhớ trước khi khởi động lại
~512 trang (~2MB)
Tải trung bình cho max-load-1 là một phút. Giá trị này thể hiện số lượng quy trình cạnh tranh tích cực về thời gian CPU trên thiết bị của bạn. Điều này ngụ ý rằng nếu máy 4 lõi có tải 4.0 thì mọi lõi đều bị chiếm dụng hoàn toàn. Sẽ an toàn hơn khi sử dụng số lượng lõi gấp 6 lần để hệ thống của bạn có khoảng trống cho các đợt bùng phát, điều này có thể hợp pháp trước khi khóa.
Ngoài ra, hãy lưu ý rằng bộ nhớ tối thiểu được chỉ định trong các trang bộ nhớ chứ không phải megabyte. Một trang thường có kích thước 4KiB trên hệ thống x86_64. Theo cách này, 512 trang sẽ có khoảng 2 MB bộ nhớ trống.
Khi bạn đã hoàn tất các cấu hình này, hãy chạy lệnh cơ quan giám sát trạng thái systemctl để xác minh daemon đang chạy và lệnh journalctl -u watchdog cho phép bạn xem lại hoạt động của nó.
Việc dừng dịch vụ cơ quan giám sát sẽ không kích hoạt quá trình khởi động lại—daemon đóng /dev/watchdog hoàn toàn khi thoát, điều này sẽ vô hiệu hóa bộ hẹn giờ một cách an toàn. Để thực sự kiểm tra xem cơ quan giám sát có khởi động lại hệ thống của bạn hay không, bạn cần mô phỏng tình trạng lỗi thực tế, chẳng hạn như tải tăng đột biến liên tục.
Không phải mọi sự cố đều cần khởi động lại
Hãy để systemd sửa các dịch vụ bị hỏng trong vài giây
Có một số lỗi mà systemd có thể xử lý trong vài giây mà không cần phải khởi động lại hệ thống. Một ví dụ có thể là một dịch vụ gặp sự cố, thoát đột ngột hoặc ngừng phản hồi. Bạn có thể áp dụng các biện pháp kiểm tra để không phải mọi thứ đều kích hoạt quá trình khởi động lại mà không cần chạm vào thiết bị ban đầu. Chạy lệnh bên dưới, thêm tên dịch vụ:
sudo systemctl edit
Sau đó thêm vào như sau:
[Service]
Restart=on-failure
RestartSec=5
Khởi động lại=khi bị lỗi đảm bảo quá trình khởi động lại chỉ xảy ra khi dịch vụ thoát ra với mã lỗi và Khởi động lạiSec=5 là khoảng thời gian trễ ngắn trước khi khởi động lại thực sự để ngăn vòng lặp khởi động lại nhanh chóng.
Kết hợp StartLimitIntervalSec và StartLimitBurst sẽ ngăn dịch vụ bị hỏng khởi động lại vô thời hạn. Chúng rất cần thiết trong việc ngăn chặn vòng lặp sự cố nhưng chỉ hoạt động đối với các dịch vụ chạy trong systemd.
Hai lớp phục hồi bao phủ hầu hết mọi lỗi
Cả cơ quan giám sát và quản lý dịch vụ systemd đều không tự hoàn thiện. Tuy nhiên, khi sử dụng cùng nhau, chúng có thể xử lý hầu hết mọi thứ.
<đầu>Loại lỗi
Lớp khôi phục
Kết quả mong đợi
Dịch vụ thoát ra có lỗi
systemd (Khởi động lại=khi bị lỗi)
Dịch vụ sẽ khởi động lại sau vài giây
Dịch vụ thoát hoàn toàn nhưng không được
systemd (Khởi động lại=luôn luôn)
Dịch vụ sẽ khởi động lại sau vài giây
Toàn bộ hệ thống bị treo hoặc tải theo vòng xoáy
daemon giám sát
Tự động khởi động lại, không cần bước thủ công
systemd rất phù hợp để phát hiện và khởi động lại các lỗi dịch vụ riêng lẻ, đồng thời cơ quan giám sát nằm phía trên nó để theo dõi toàn bộ hệ thống và kích hoạt khởi động lại khi có sự cố vượt quá giới hạn của systemd.
Sự kết hợp này có nghĩa là bạn không cần phải có mặt mỗi khi có sự cố xảy ra và nó khiến việc quản lý máy chủ trở thành một công việc dễ chịu hơn. Ngoài ra, hãy cân nhắc việc học các lệnh Linux cụ thể để giúp bạn khắc phục hầu hết các sự cố hệ thống.