Ngày càng nhiều hệ điều hành trở nên cồng kềnh với rất nhiều service chạy ngầm. Mặc dù chúng có thể không sử dụng nhiều thời gian CPU, nhưng chúng làm tăng thời gian khởi động và mức sử dụng RAM. May mắn thay, các hệ điều hành mã nguồn mở cho phép bạn làm những gì mình muốn. Điều này có nghĩa là bạn có thể vô hiệu hóa hoặc xóa bất cứ thứ gì mình không cần. Bài viết hôm nay sẽ hướng dẫn bạn cách vô hiệu hóa các service không cần thiết để cải thiện thời gian khởi động Linux.
Lưu ý: Bài viết hướng dẫn bạn cách vô hiệu hóa các service chứ không phải xóa chúng. Vô hiệu hóa các service có ít rủi ro gây hỏng hóc vĩnh viễn hơn. Và bạn có thể quay lại trạng thái ban đầu bằng cách chỉ cần kích hoạt lại một service nếu nhận thấy một chức năng hữu ích nào đó ngừng hoạt động.
Phân tích thời gian load của từng service
Hầu hết các hệ điều hành dựa trên Linux đều sử dụng Systemd theo mặc định. Trong số các tiện ích mà nó bao gồm, có một chương trình cho phép bạn phân tích tốc độ khởi động hệ thống của mình. Cụ thể, nó hiển thị cho bạn tổng thời gian cần thiết để khởi động và thời gian load của từng service. Lưu ý rằng một số service được load song song. Vì vậy, nếu một service cần 2 giây để load và service khác cần 3 giây, điều đó không nhất thiết có nghĩa là tổng cộng cần 5 giây. Thời gian có thể ít hơn nhiều.
Mở trình giả lập terminal và nhập lệnh này:
systemd-analyze
Lệnh này cho thấy thời gian cần thiết để Linux kernel và các service hệ thống cốt lõi khởi tạo. Nó không tính đến thời gian cần thiết để các hình ảnh động trên màn hình hoặc các ứng dụng người dùng hoàn tất quá trình load.
Tuy nhiên, bạn có thể xem thời gian cần thiết để giao diện đồ họa khởi tạo bằng lệnh này:
systemd-analyze critical-chain graphical.target
Lệnh này cho thấy chuỗi các service dẫn đến việc đạt được mục tiêu đồ họa. Mặc dù hữu ích, nhưng điều này thể hiện một cột mốc kỹ thuật chứ không phải là thời điểm desktop hoàn toàn ở trạng thái rảnh rỗi, vì một số thành phần nền có thể tiếp tục load sau đó.
Lưu ý: Các chương trình tự động khởi chạy trong môi trường desktop thường được quản lý thông qua cài đặt tự động khởi động dành riêng cho desktop hoặc những service người dùng systemd.
Cuối cùng, có lẽ lệnh hữu ích nhất cho mục đích của hướng dẫn này là:
systemd-analyze blame
Bạn có thể điều hướng danh sách bằng các phím mũi tên hoặc PAGE UP và PAGE DOWN. Nhấn q để thoát.
Sử dụng Systemctl để vô hiệu hóa các service không cần thiết
Như bạn có thể thấy trong hình ảnh trước đó, một số service như snapd mất vài giây để load. Trên SSD, điều này là không đáng kể. Nhưng trên ổ cứng truyền thống, những khoảng thời gian này sẽ lên đến vài giây, và cuối cùng chúng sẽ tích lũy lại rất nhiều.
Giả sử bạn không cần service snapd, service cung cấp quyền truy cập vào các ứng dụng snap được đóng gói trong container. Bạn có thể vô hiệu hóa nó bằng lệnh này:
sudo systemctl disable snapd.serviceSau khi khởi động lại, bạn vẫn có thể thấy snapd khởi động trong một số điều kiện nhất định. Điều này xảy ra vì snapd sử dụng kích hoạt socket, cho phép nó khởi động theo yêu cầu ngay cả khi bản thân service đã bị vô hiệu hóa.
Bạn có thể xác định các đơn vị liên quan bằng:
systemd-analyze blame | grep snap
Điều này giúp bạn xác định các đơn vị liên quan đến Snap nào đang góp phần vào hoạt động khởi động.
Xử lý các service được kích hoạt bằng socket
Một số service, bao gồm snapd, sử dụng kích hoạt socket. Điều này có nghĩa là service vẫn có thể khởi động khi có thứ gì đó cố gắng giao tiếp với nó, ngay cả khi nó bị vô hiệu hóa.
Nếu snapd tiếp tục xuất hiện sau khi khởi động lại, các đơn vị liên quan như snapd.socket hoặc snapd.seeded.service có thể là nguyên nhân. Trong những trường hợp như vậy, việc che giấu service và socket của nó sẽ hiệu quả hơn:
sudo systemctl mask snapd.service
sudo systemctl mask snapd.socketViệc che giấu sẽ chặn hoàn toàn service để các dependency hoặc socket không thể khởi động nó. Tuy nhiên, hãy sử dụng phương pháp này một cách cẩn thận, đặc biệt là trên các bản phân phối dựa vào những gói Snap để cập nhật hệ thống hoặc ứng dụng.
Ngoài ra, hãy cẩn thận đừng nhầm lẫn giữa "vô hiệu hóa" và "ẩn" trong ngữ cảnh này. Vô hiệu hóa một service sẽ báo cho systemd không tự động khởi động nó. Ẩn còn tiến xa hơn bằng cách ngăn service khởi động hoàn toàn. Trong hầu hết các trường hợp, việc vô hiệu hóa là đủ. Ẩn (masking) hữu ích cho những service cứ khởi động lại liên tục hoặc rõ ràng là không cần thiết trên hệ thống.
Hơn nữa, tùy thuộc vào cấu hình, bạn có thể tìm thấy thêm các service khác mà bạn có thể vô hiệu hóa một cách an toàn, chẳng hạn như:
avahi-daemon.service
ModemManager.service
thermald.serviceTuy nhiên, hãy đảm bảo bạn luôn nghiên cứu kỹ một service trước khi vô hiệu hóa nó. Những gì không cần thiết trên desktop có thể lại rất cần thiết trên máy tính xách tay hoặc máy chủ.
Học IT










Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy