[..] Có nghĩa là gì trong 'ps' và làm thế nào để bạn tạo ra một quy trình như thế này?


10

Khi chạy ps, bạn nhận được một cái gì đó như:

root         2  0.0  0.0      0     0 ?        S<   00:00   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S<   00:00   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S<   00:00   0:00 [events/0]

Tất cả các quy trình trình nền thường có dấu ngoặc [[..] 'xung quanh chúng.

Họ có ý nghĩa gì (nếu có gì)? Làm thế nào để bạn tạo ra một quá trình xuất hiện như thế này?

Lý do tôi hỏi là chúng tôi tạo một daemon hệ thống từ RCS (chương trình sử dụng ngã ba để tạo daemon), nhưng mục nhập ps trông như sau:

root       207  0.0  0.2   1516   200 ?        S    00:00   0:00 /root/testdaemo

Vì vậy, chúng tôi đã tự hỏi liệu điều quan trọng là phải có dấu ngoặc '[..]' và cách các quy trình có được chúng ở vị trí đầu tiên.

Cảm ơn.


Câu trả lời:


14

Dấu ngoặc vuông được sử dụng cho các quy trình không có dòng lệnh liên quan (chủ yếu là các luồng nhân và một số dịch vụ hệ thống).

Nếu tôi nhớ lại một cách chính xác, bạn có thể đạt được hiệu ứng tương tự cho quy trình của mình bằng cách đặt argv[0]thành chuỗi trống.


1
mostly- điều gì có thể tạo ra một ngoại lệ?
n611x007

Dấu / 0 có nghĩa là gì?
RyanN

4
@RyanN, có nghĩa là luồng nhân đang chạy trên CPU đầu tiên.
Frédéric Hamidi

5

Vâng, chúng là các luồng nhân, được tạo bởi các hệ thống con kernel. Chúng được tạo bằng các hàm kthread_create () hoặc kernel_thread () trong kernel.


2

Ví dụ của bạn thậm chí không hiển thị [...], vì vậy tôi không chắc chắn 100% bạn đang nói về điều gì. Tuy nhiên, có thể sửa đổi các argvđối số của bất kỳ chương trình nào (trong Linux). Các đối số được phản ánh trong đầu ra của ps.


2
[...]có nghĩa là một giữ chỗ. Tôi đã đề cập đến [kthreadd]<- cái []mà gói gọn tên.

ah tôi thấy. Sau đó, tôi tin rằng đó là những quá trình kernel.
Chris Eberle
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.