Cải thiện thời gian khởi động có liên quan cao với việc vô hiệu hóa / quản lý dịch vụ, nhưng các câu trả lời hiện tại thiếu chi tiết trong việc vô hiệu hóa các dịch vụ sử dụng systemd
.
Systemd là gì?
Nói tóm lại, systemd là trình quản lý hệ thống và dịch vụ cho Linux, tương thích với các tập lệnh init SysV và LSB. Thông tin thêm về điều này có thể được đọc từ trang dự án chính thức .
Kiểm tra những dịch vụ nào mất nhiều thời gian nhất
Sử dụng lệnh sau để kiểm tra dịch vụ nào mất nhiều thời gian nhất
systemd-analyze blame
Vô hiệu hóa tự động khởi động dịch vụ trong khi khởi động
Nếu bạn muốn tắt tự động khởi động dịch vụ trong khi khởi động, bạn có thể sử dụng lệnh sau
sudo systemctl disable some-time-eater-service.service --now
Tuy nhiên, bạn có thể muốn xem dịch vụ nào khác cần dịch vụ được đề cập. Để kiểm tra sử dụng lệnh sau
systemctl list-dependencies some-time-eater-service.service --reverse
Lưu ý: Thay thế some-time-eater-service.service
bằng tên dịch vụ thực tế như thế nào postgresql@9.5-main.service
.
Lưu ý rằng, vô hiệu hóa tự động khởi động không làm cho dịch vụ không thể khởi động. Dịch vụ có thể được bắt đầu sau khi khởi động khi có yêu cầu. Nếu bạn muốn tắt nó hoàn toàn, hãy đọc phần tiếp theo
Vô hiệu hóa dịch vụ hoàn toàn.
Nếu bạn muốn vô hiệu hóa hoàn toàn một dịch vụ để không thể khởi động dịch vụ, bạn nên sử dụng mask
thay vì vô hiệu hóa. Như thế này
sudo systemctl mask <SERVICE-NAME>
Thay thế <SERVICE-NAME>
bằng tên thật của một dịch vụ
Sự khác biệt giữa mask
và disable
là mặt nạ làm cho một dịch vụ hoàn toàn vô hiệu hóa, bạn không thể bắt đầu nó. Bạn phải unmask
bắt đầu với systemd (bạn vẫn có thể bắt đầu với service
). Nhưng disable
chỉ cần vô hiệu hóa tự động khởi động dịch vụ, bạn có thể bắt đầu dịch vụ sau.
Ví dụ: Sau khi che dấu postgresql@9.5-main.service
dịch vụ của tôi , khi tôi muốn bắt đầu dịch vụ với systemctl
thông báo sau sẽ được hiển thị
Failed to start postgresql@9.5-main.service: Unit postgresql@9.5-main.service is masked.
Công cụ GUI
Một công cụ GUI tôi đặc biệt thấy thú vị là systemd-manager
, nó vẫn đang trong giai đoạn phát triển và chưa được đưa vào đường dẫn tới kho lưu trữ Ubuntu chính thức. Tuy nhiên, bạn có thể cài đặt nó rất dễ dàng từ trang github của Systemd-Manager . Các bản phát hành có chứa một gói .deb, rất dễ cài đặt. Bạn cần GTK-3.16 trở lên.
Khi bạn tải xuống và cài đặt, bạn có thể bắt đầu bằng systemd-manager
lệnh. Bắt đầu làm đi.
Ứng dụng này có hai góc nhìn chính. Một là Systemd Đơn vị và một là Systemd Phân tích . Bạn có thể chuyển đổi nó với nhãn ở góc trên bên trái. Xem ảnh chụp màn hình.
Và có ba loại đơn vị bạn có thể quản lý. Phục vụ , ổ cắm và bộ hẹn giờ . Bạn có thể chuyển đổi giữa chúng. Xem ảnh chụp màn hình.
Hiển thị thông tin
Ba tab chính là Tệp , Tạp chí , Phụ thuộc .
- Tệp là tệp cấu hình của đơn vị được chọn.
- Nhật ký là đầu ra của systemd trực tiếp trong khi bật / tắt / khởi động / dừng các đơn vị
- Sự phụ thuộc cho thấy những dịch vụ hoặc đơn vị khác phải được kích hoạt để bắt đầu một dịch vụ được chọn.
Các chỉ số trạng thái
Có hai cột bên cạnh tên của các đơn vị để chỉ Trạng thái. Một bên trái cho biết đơn vị đó có được bật để khởi động khi khởi động hay không và đơn vị bên phải cho biết đơn vị đó có đang chạy hay không. Xem chúng trong hình.
Công tắc điều khiển
Để bật trạng thái kích hoạt khi khởi động hoặc đang chạy, có hai nút toogle ở góc trên bên phải.
Kích hoạt có nghĩa là các đơn vị sẽ bắt đầu và khởi động. Xem chúng trong hình.
Giao diện hoàn chỉnh của ứng dụng được hiển thị bên dưới
Hy vọng điều này sẽ giúp. Tôi được hưởng lợi từ các câu trả lời khác về systemd, nhưng thực sự cần thiết để thu thập thông tin ở một nơi.
Thêm thông tin :
Để biết thêm về systemd
bạn có thể truy cập các liên kết sau:
Các câu trả lời khác có đề xuất khác nhau. Bao gồm mua SSD, tăng RAM, v.v. Nếu bạn có đủ khả năng, những thứ đó chắc chắn sẽ giúp ích, đặc biệt là gợi ý về SSD.
systemd
(kể từ 15.04 IIRC) đi kèm với công cụsystemd-analyze
có thể giúp bạn phân tích quá trình nào sẽ mất bao lâu để khởi động. Xemman systemd-analyze
để tìm hiểu về tất cả các tùy chọn của nó,systemd-analyze blame
mặc dù trên có lẽ bạn sẽ sử dụng hầu hết .