Làm cách nào để bỏ qua thời gian chờ thập niên 90 trong systemd


15

Có thể bỏ qua tương tác thời gian chờ thập niên 90 trong systemd không? Ví dụ, khi nó đang chờ một đĩa có sẵn hoặc người dùng đăng xuất? Tôi biết cuối cùng nó sẽ thất bại, vậy tôi có thể làm cho nó thất bại bây giờ không? Tôi ghét chỉ nhìn chằm chằm vào màn hình một cách bất lực.

Câu trả lời:


11

Bạn có hai lựa chọn:

  1. Bạn có thể đặt TimeoutStopSpec=trên một ĐƠN VỊ cụ thể thành một giá trị cụ thể (tính bằng giây *) để chờ. Bạn cũng có thể đặt nó infinitytrong trường hợp SIGKILL sẽ không bao giờ được gửi (không được đề xuất vì bạn có thể kết thúc với các dịch vụ chạy trốn khó gỡ lỗi).

  2. Đặt DefaultTimeoutStopSec=bên trong /etc/systemd/system.conf(hoặc user.conf, hoặc trong một trong các *.dthư mục) thành giá trị mặc định mà tất cả các UNIT không TimeoutStopSpec=được chỉ định sẽ sử dụng. Cái điếc cho thiết lập này là những năm 90 bạn thường thấy.

Tài liệu tham khảo trang Man:

  • man systemd.service cho TimeoutStopSpec=
  • man systemd-system.conf cho DefaultTimeoutStopSec=

* systemd cũng chấp nhận thông số kỹ thuật thời gian, ví dụ: "2 phút 3 giây". Điều đó được mô tả rộng rãi trong người đàn ông.


9
Đây không phải là tương tác. Khi systemd đã đếm ngược những năm 90, đã quá muộn để thực hiện những thay đổi này và tôi buộc phải ngồi dù nó bất lực.
user7610

@JiriDanek - đó là vì systemd không tương tác, nó không có nghĩa. Quá trình tty của bạn (trong đó bạn thấy thập niên 90) chạy như một đứa con của init (sytemd), tức là quá trình hiển thị (getty) những năm 90 là một đứa con của quá trình đếm chúng (systemd). Và hơn nữa, systemd bỏ qua hầu hết các tín hiệu. systemd không có nghĩa là được kiểm soát bởi một người dùng ngẫu nhiên trước một tty (đó sẽ là một rủi ro bảo mật rất lớn).
hóa dầu

4
Tôi chủ yếu là một người dùng máy tính để bàn, vì vậy tôi có xu hướng nhìn mọi thứ khác đi. Nhớ máy in của con gái Torvalds ? Nhiều bất cập thiết kế có thể được biện minh bởi mối quan tâm an ninh.
user7610

@JiriDanek - systemd không phải là vấn đề đáng lo ngại , nó sẽ là một vector tấn công thực sự. Nếu bạn có thể nhắm tín hiệu chính xác vào đúng thời điểm, bạn có thể (với tư cách là người dùng thông thường) sẽ vô hiệu hóa một dịch vụ hệ thống (ví dụ: SELinux). Chỉ cần truy cập /etc/systemd/system.con và thêm DefaultTimeout = 3. Hoặc, tốt hơn, sửa chữa dịch vụ bị lỗi. Thực tế là một số dịch vụ luôn thất bại không phải là thiết kế xấu của systemd, là thiết kế xấu của người đã viết tệp đơn vị.
hóa dầu

Trong trường hợp cụ thể của tôi, người viết tệp đơn vị là vô tội. Tôi vừa mắc lỗi đánh máy khi sao chép UUID đĩa. Tôi chỉ đơn giản thấy khó chịu khi phải chờ đủ phút rưỡi trước khi systemd từ bỏ việc gắn nó và để tôi vào hệ thống và khắc phục sự cố. Thời gian chờ lâu thực sự có ý nghĩa ở đây. Ngoại trừ khi tôi quản trị viên biết nó không.
user7610


6

Bạn có thể bỏ ghi chú trong /etc/systemd/system.confcác dòng:

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

Và thay đổi giá trị thành những gì bạn cho là phù hợp.


7
Giống như câu trả lời khác, đây không phải là tương tác. Khi systemd đã đếm ngược những năm 90, đã quá muộn để thực hiện những thay đổi này và tôi buộc phải ngồi dù nó bất lực.
user7610
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.