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,cmd
Saya melihat ada banyak proses yang berbagi sama pgrp
dengan subtree persis yang ingin saya bunuh. (Selain itu, saya tidak dapat melihat setpgrp
program terdaftar di mana saja dalam paket debian stable: packages.debian.org/... )