`ps aux` được viết bằng Bash mà không cần fork
(github.com/izabera)Triển khai ps aux bằng bash
-
Câu hỏi phỏng vấn: Có thể giả định tình huống sau như một câu hỏi phỏng vấn cho vị trí cần kiến thức về bash/linux
- Đang dùng shell bash trên một máy truy cập qua SSH, nhưng ở trong tình huống không thể tạo tiến trình mới
- Câu hỏi đặt ra là sẽ làm gì nếu tất cả PID đều đã được sử dụng
-
Giải pháp: Dùng công cụ này có thể hoạt động như thể bạn có thể dùng lệnh
ps aux- Không phải lúc nào cũng hoạt động 100% trong mọi tình huống, nhưng vận hành tương tự
Tóm tắt của GN⁺
- Bài viết này đưa ra một cách thay thế lệnh
ps auxtrong tình huống không thể tạo tiến trình mới trong shell bash - Giải thích cách kiểm tra các tiến trình hệ thống thông qua script bash
- Cách này có thể không hoạt động hoàn hảo trong mọi tình huống, nhưng có thể hữu ích trong môi trường bị hạn chế
- Các công cụ khác cung cấp chức năng tương tự gồm có
htophoặc lệnhtop
1 bình luận
Ý kiến trên Hacker News
Vấn đề khó nhất trong khoa học máy tính là căn chỉnh cột
Ví dụ về câu hỏi phỏng vấn đòi hỏi kiến thức liên quan đến bash/Linux
/proc/[pid]/killlà lệnh dựng sẵn của bash nên có thể dùng mà không cần tạo tiến trình mớiTrải nghiệm phỏng vấn cho vai trò SRE tại một công ty công nghệ lớn của Mỹ vào năm 2011
netstatbằng bash/proc/, nên đã viết chương trình thay thếpsvàfuserIzabera trên bash@libera là một trong những chuyên gia bash
Ví dụ về mã bash gọn gàng
Câu hỏi về cách xử lý khi không thể tạo tiến trình mới vì tất cả PID đều đã được sử dụng
Không chạy trên bash 3.2 nhưng hoạt động trên bash 4.2
printfĐề xuất một trường hợp sử dụng tốt hơn cho việc liệt kê tiến trình trên hệ thống không cài procps
Có thể viết listener và client bằng bash, nhưng trên thực tế thì không được khuyến nghị