Tôi muốn có một danh sách tất cả các quá trình đi xuống (ví dụ như trẻ em, cháu, v.v.) từ đó $pid
. Đây là cách đơn giản nhất mà tôi nghĩ ra:
pstree -p $pid | tr "\n" " " |sed "s/[^0-9]/ /g" |sed "s/\s\s*/ /g"
Có bất kỳ lệnh, hoặc bất kỳ cách đơn giản hơn để có được danh sách đầy đủ của tất cả các quá trình con cháu?
'\n'
phân định so với ' '
phân cách). Trường hợp sử dụng thực tế là: a) một tập lệnh trình nền mà tôi đã viết ra khỏi chủ nghĩa khổ dâm thuần túy (cụ thể, chức năng "dừng" phải xử lý bất kỳ cây quy trình nào mà quy trình được tạo ra); và b) một tập lệnh hết thời gian sẽ giết bất cứ quy trình hết thời gian nào được quản lý để tạo.
kill
. Xem unix.stackexchange.com/questions/9480/... , unix.stackexchange.com/questions/50555/...
ps ax -opid,ppid,pgrp,cmd
Tôi thấy có nhiều quy trình chia sẻ giống pgrp
như cây con chính xác mà tôi muốn giết. (Ngoài ra, tôi không thể nhìn thấy setpgrp
chương trình liệt kê bất cứ nơi nào trong gói debian ổn định: packages.debian.org/... )