Saya ingin mendapatkan daftar semua proses yang turun (misalnya anak-anak, cucu-cucu, dll) dari $pid. Ini adalah cara paling sederhana yang saya buat:
pstree -p $pid | tr "\n" " " |sed "s/[^0-9]/ /g" |sed "s/\s\s*/ /g"
Apakah ada perintah, atau cara sederhana untuk mendapatkan daftar lengkap dari semua proses turunan?
'\n'dibatasi vs ' 'dibatasi). Kasus penggunaan praktis adalah: a) skrip daemonizer yang saya tulis dari masokisme murni (khususnya, fungsi "stop" harus berurusan dengan pohon proses apa pun yang proses daemonisasi telah hasilkan); dan b) skrip batas waktu yang akan membunuh apa pun yang berhasil dibuat oleh proses batas waktu.
kill. Lihat unix.stackexchange.com/questions/9480/… , unix.stackexchange.com/questions/50555/…
ps ax -opid,ppid,pgrp,cmdSaya melihat ada banyak proses yang berbagi sama pgrpdengan subtree persis yang ingin saya bunuh. (Selain itu, saya tidak dapat melihat setpgrpprogram terdaftar di mana saja dalam paket debian stable: packages.debian.org/... )