Như những người khác đã lưu ý ở đây, về lý thuyết, điều này không ảnh hưởng đến người dùng cuối phi kỹ thuật - và về lý thuyết không có sự khác biệt giữa lý thuyết và thực tiễn nhưng trong thực tế thì có.
Làm rõ
Tôi nghĩ rằng vài điều được đăng ở đây cần một số làm rõ:
Đó là một hệ thống init, không phải thứ mà người dùng thường tương tác.
Đó là trường hợp với SysV init và với Upstart nhưng nó không còn là trường hợp với systemd nữa. Nó thực hiện rất nhiều thứ mà người dùng thường tương tác với:
Nó sẽ thay thế hoàn toàn chức năng được cung cấp bởi Upstart Tập và làm thêm một vài điều
Hai điều cần làm rõ - đầu tiên về việc thay thế hoàn toàn Upstart:
Không có tập lệnh init SysV
Một trong những vấn đề mà mọi người gặp phải với systemd là nó không chạy các tập lệnh init SysV. Vì vậy, có một ví dụ rằng nó không thay thế hoàn toàn chức năng được cung cấp bởi Upstart.
Đây là điều mà chúng tôi có thể dựa vào hơn 30 năm và theo truyền thống, bạn đã viết các tập lệnh init SysV để có tính di động tối đa mà không cần lặp lại (bằng cách viết nhiều phiên bản của cùng một tập lệnh), không còn như vậy nữa.
Đây không phải là vấn đề khi chỉ sử dụng các gói từ kho chính thức bởi vì có lẽ tất cả các gói đã từng sử dụng tập lệnh SysV init hoặc Upstart sẽ cần phải viết lại tập lệnh của chúng trước khi chúng được đóng gói.
Nó sẽ chỉ là vấn đề đối với những người tình cờ sử dụng bất kỳ phần mềm tùy chỉnh hoặc bên thứ ba nào có tập lệnh init của họ được viết cho SysV init hoặc Upstart và những người đó sẽ cần các tập lệnh init được viết lại trước khi nâng cấp lên hệ thống với systemd (hoặc get cài đặt mới bắt đầu, cũng là một tùy chọn hoặc di chuyển sang hệ thống không sử dụng systemd).
Có systemd-sysv-tạo được cho là tự động dịch các tập lệnh init SysV sang tập lệnh systemd nhưng có một số lỗi và một danh sách dài các không tương thích rõ ràng .
Bây giờ, làm rõ thứ hai - về vài điều thêm:
Vài điều thêm
Những "điều bổ sung" mà systemd sẽ trình bày - theo A Phối cảnh cho systemd - Điều gì đã đạt được và Điều gì nói dối trước bài thuyết trình của Lennart Poettering vào năm 2014 tại Gnome.asia - như sau:
- hệ thống init
- ghi nhật ký
- quản lý đăng nhập
- quản lý thiết bị
- quản lý tập tin tạm thời và không ổn định
- đăng ký định dạng nhị phân
- lưu / khôi phục đèn nền
- lưu / khôi phục rfkill
- khởi động
- đọc
- thiết lập lưu trữ được mã hóa
- Phát hiện phân vùng EFI / GPT
- đăng ký máy ảo / container
- quản lý container
- quản lý tên máy chủ
- quản lý địa phương
- quản lý thời gian
- quản lý hạt giống ngẫu nhiên
- quản lý biến sysctl
- quản lý điều khiển
- hướng nội
- khám phá tự động
- cắm và chơi
- quản lý mạng
- systemd-mạngd
- Bộ đệm DNS
- phản hồi mDNS
- Phản hồi LLMNR
- Xác minh DNSSEC
- IPC trong nhân
- xe buýt
- xe buýt
- đồng bộ hóa thời gian với NTP
- systemd-timesyncd
- tích hợp với container
- hộp cát của dịch vụ
- hộp cát của ứng dụng
- Định dạng hình ảnh hệ điều hành
- Định dạng hình ảnh container
- Định dạng hình ảnh ứng dụng
- GPT với tính năng tự động phát hiện
- Hệ thống không quốc tịch
- hệ thống tức thời
- khôi phục cài đặt gốc
- khởi tạo và cập nhật nút
- tích hợp với đám mây
- quản lý dịch vụ trên các nút
- Hình ảnh hệ điều hành có thể kiểm chứng tất cả các cách để chương trình cơ sở
- Đang tải khởi động
- Xây dựng hệ điều hành thế hệ tiếp theo của Internet Thống nhất sự khác biệt vô nghĩa giữa các bản phân phối
Vì vậy, quay trở lại: "Đó là một hệ thống init, không phải thứ mà người dùng thường tương tác." - phải chỉ ra rằng hệ thống init chỉ là một mục trong danh sách đó.
Và cuối cùng, điều cuối cùng tôi muốn bình luận:
[T] anh ta chỉ có thời gian một người dùng không có kỹ thuật sẽ thấy điều này là khi nó gặp trục trặc.
Ôi, thật là nhẹ nhõm. :)
Thay đổi
Những thay đổi đáng chú ý nhất đối với người dùng cuối (trừ chính tập lệnh) đang bắt đầu và dừng dịch vụ và sử dụng các lệnh như:
mà không còn làm việc như mong đợi. Ví dụ: nohup
là lệnh POSIX để đảm bảo rằng quy trình tiếp tục chạy sau khi bạn đăng xuất khỏi phiên của mình. Nó không còn hoạt động trên systemd. Ngoài ra, các chương trình như screen
và tmux
cần phải được gọi theo một cách đặc biệt hoặc nếu không các quy trình mà bạn chạy với chúng sẽ bị giết (trong khi không làm cho các quy trình đó bị giết thường là lý do chính của việc chạy màn hình hoặc tmux ở vị trí đầu tiên).
Đây không phải là một lỗi, nó là một sự lựa chọn thiết kế, vì vậy nó không có khả năng được sửa chữa trong tương lai. Đây là những gì Lennart Poettering đã nói về vấn đề này:
Theo quan điểm của tôi, UNIX thực sự khá lạ khi nó mặc định cho phép mã người dùng tùy ý ở xung quanh không bị hạn chế sau khi đăng xuất. Hiện nay, nó đã được thảo luận từ lâu trong số nhiều người dùng HĐH, rằng điều này có thể xảy ra nhưng chắc chắn không phải là mặc định, nhưng cho đến nay, không ai dám lật công tắc để chuyển nó từ mặc định sang tùy chọn. Không dọn dẹp các phiên của người dùng sau khi đăng xuất không chỉ xấu xí và có phần hack mà còn là một vấn đề bảo mật. systemd 230 cuối cùng đã tắt công tắc và cuối cùng theo mặc định sẽ dọn sạch mọi thứ một cách chính xác khi người dùng đăng xuất.
Để biết thêm thông tin xem:
Đang chạy screen
- mới bắt đầu:
screen
- hệ thống:
systemd-run --user --scope screen
(Lưu ý: hành vi "khởi động" ở trên thực sự là bất cứ điều gì ngoại trừ systemd, đây không phải là bắt đầu cụ thể)
Bắt đầu công việc:
- mới bắt đầu:
start foo
- hệ thống:
systemctl start foo
Dừng công việc foo:
- mới bắt đầu:
stop foo
- hệ thống:
systemctl stop foo
Khởi động lại công việc:
- mới bắt đầu:
restart foo
- hệ thống:
systemctl restart foo
Liệt kê các công việc với trạng thái của chúng:
- mới bắt đầu:
initctl list
- hệ thống:
systemctl status
(Xem câu trả lời của tôi về Ưu / nhược điểm của Upstart và systemd là gì để biết thêm chi tiết nằm ngoài phạm vi của câu hỏi này.)
Nhật ký
Ngoài ra còn có một sự khác biệt lớn trong việc xử lý các bản ghi vì trái với truyền thống Unix, các bản ghi của systemd được lưu trữ trong các tệp nhị phân ở định dạng tùy chỉnh, vì vậy thay vì:
cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log
bạn cần sử dụng các lệnh đặc biệt để truy cập nhật ký của mình:
sudo journalctl -u foo
sudo journalctl -u foo -f
Tranh cãi
Việc giới thiệu systemd trước tiên cho Debian và sau đó là Ubuntu không phải là không có tranh cãi và sự phản đối lớn như bất kỳ ai đã viết một trong những bài viết sau:
Vị trí Debian chính thức trên systemd và kết quả tranh cãi đã dẫn đến tuyên bố Exodus vào năm 2014 và kết thúc bằng sự từ chức của Ian Jackson .
Các sáng kiến của Freedom Freedom , Without-Systemd.org và Systemd-Free.org đã ra đời, với rất nhiều cuộc thảo luận về Hacker News .
đọc thêm