Làm thế nào để tôi giết một chủ đề hạt nhân? Và tôi có thực sự muốn làm như vậy?


8

Như tôi đã học được từ câu hỏi này , [bracketed]các quy trình được liệt kê bởi ps auxlệnh là các luồng nhân. Vậy có cách nào để giết chúng khỏi dòng lệnh? Nếu không, tôi đoán lý do cho điều đó là để cứu người dùng khỏi nguy cơ bị hoảng loạn hạt nhân cao hơn, phải không?

Câu trả lời:


9

Bạn không thể giết các luồng nhân, hoặc bất kỳ quá trình nào bị chặn ở trạng thái D, vì các tín hiệu chỉ được gửi khi hạt nhân trở về chế độ người dùng. Ngoài giới hạn kỹ thuật của việc truyền tín hiệu, việc giết một luồng ở giữa mã kernel sẽ làm hỏng hệ thống vì mã kernel có thể đang giữ một tài nguyên quan trọng tại thời điểm đó, chẳng hạn như khóa spin hoặc mutex, và giết chết nó sẽ ngăn chặn những điều đó tài nguyên từ được phát hành.

Nếu bạn có một quá trình bị kẹt ở trạng thái D trong một khoảng thời gian dài, thì bạn có một lỗi kernel. Xem https://wiki.ubfox.com/KernelTeam/KernelTeamBugPol khâu để biết các mẹo về báo cáo.


2

Chủ đề hạt nhân là các chủ đề cần thiết được tạo bởi Kernel của bạn để quản lý hệ thống của bạn.

Không phải tất cả đều cần thiết nhưng tất cả (hầu hết) đều có lợi và hầu như không cần thêm tài nguyên, không có lý do gì người ta trong điều kiện bình thường nghĩ về việc giết một luồng Kernel.

Linux Kernel có thể tạo ra các lệnh hủy khi cần thiết, bạn không nên lo lắng về chúng và giết trong hầu hết các trường hợp không phải là điều bạn có thể làm.


Điều gì sẽ xảy ra nếu tôi có một luồng đang trong trạng thái ngủ liên tục, nó chặn tài nguyên hệ thống như thiết bị được gắn với giá treo hoặc phần cứng khác mà tôi muốn giải phóng bằng cách giết luồng?
toán

1
Gửi một lỗi chống lại nó nếu bạn nghĩ rằng nó hữu ích (và không phải là trục trặc với hệ thống của bạn) và hy vọng rằng nó sẽ được giải quyết sớm.
Bruno Pereira

Tôi sẽ cố gắng tìm ra những gì sai với việc gắn kết trước khi quyết định rằng giết các luồng nhân là giải pháp.
Bruno Pereira

Tôi không phải là một hacker kernel nhưng là người dùng một số trình điều khiển kernel. Tất nhiên tôi nên làm một báo cáo lỗi nếu một số thiết bị không hoạt động đúng, nhưng tôi phải đợi ít nhất nửa năm, vì vậy ubfox tiếp theo sẽ mang lỗi này. Tôi nghĩ đó là một kịch bản hợp lệ và hạt nhân linux sẽ đi kèm với khả năng hủy bỏ một hành động nhất định và giải phóng tài nguyên (nếu có bị chiếm dụng).
toán

bạn không thể hiểu rằng rất có thể luồng kernel đã được khởi tạo bởi tiến trình anogher, vì vậy có lẽ không có gì sai với luồng kernel đó ngoại trừ quá trình bắt đầu quên đóng nó. Tôi hiểu những gì bạn đang nói nhưng tôi không nghĩ rằng thậm chí nên giết các chủ đề hạt nhân.
Bruno Pereira
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.