lebih cepat: grep PPid status |cut -f2seperti di time(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done); bertanya-tanya apakah ada sesuatu yang lebih cepat?
Aquarius Power
1
@AquariusPower Karena Anda bertanya, fgrep lebih cepat daripada grep. fgrep PPid status |cut -f2
jbo5112
sed jauh lebih cepat daripada grep and cut:sed -rn '/PPid/ s/^.*:\s+// p' < status
The =tanda tidak diperlukan, setidaknya pada OS X 10.8.2.
jtbandes
5
@ jtbandes: Tanda sama dengan yang digunakan di sini menekan output dari baris header ( Linux dan OS X ).
Dennis Williamson
13
Ini adalah salah satu hal yang saya pelajari, lupakan, pelajari kembali, ulangi. Tapi ini berguna. Bendera perintah pstree 's' menunjukkan pohon dengan daun di N:
Jalankan topdengan opsi apa pun yang Anda inginkan -u username and -p PID.
Dan saat topsedang bekerja tekan f, itu menunjukkan daftar opsi yang ingin Anda tampilkan dalam topoutput, dan parameter yang ditampilkan akan ditampilkan dalam huruf kapital dan parameter yang menampilkan atau tidak akan ditampilkan dalam huruf kecil.
Jadi dengan memasukkan huruf sebelum parameter Anda dapat mengaktifkan atau menonaktifkannya. Untuk ID proses induk Anda harus memasukkan bdan kemudian tekan Enter, itu akan menampilkan PPID di output atas.
grep PPid status |cut -f2
seperti ditime(for((i=0;i<1000;i++));do grep PPid status |cut -f2 >/dev/null;done)
; bertanya-tanya apakah ada sesuatu yang lebih cepat?fgrep PPid status |cut -f2
sed -rn '/PPid/ s/^.*:\s+// p' < status
Jawaban:
Garis komando:
Fungsi:
Alias ( lebih disukai fungsi ):
Naskah:
Jika tidak ada PID yang disediakan untuk fungsi atau skrip, mereka default untuk menunjukkan PPID dari proses saat ini.
Untuk menggunakan alias, PID harus disediakan.
sumber
=
tanda tidak diperlukan, setidaknya pada OS X 10.8.2.Ini adalah salah satu hal yang saya pelajari, lupakan, pelajari kembali, ulangi. Tapi ini berguna. Bendera perintah pstree 's' menunjukkan pohon dengan daun di N:
sumber
Pid Induk dalam variabel shell PPID, jadi
sumber
$PPID
tidak hanya menyelesaikan masalah yang saya miliki di mana Google menyarankan halaman ini sebagai jawaban.Untuk mencetak id induk (
PPID
) dari semua proses, gunakan perintah ini:Untuk proses tunggal, hanya lulus PID, seperti:
ps j 1234
.Untuk mengekstrak hanya nilai, filter keluaran oleh
awk
, seperti:Untuk daftar PID dari semua orang tua, gunakan
pstree
(instal jika Anda tidak memilikinya):Untuk mendapatkan PID induk dari proses saat ini, gunakan
echo $$
.sumber
pstree
adalah yang terbaik yang pernah saya lihat di sini.ps j
hebat karena tersedia di banyak distro dan mudah dikomposasikanBaca / proc / $ PID / status. Dapat dengan mudah dituliskan:
sumber
grep '^PPid:' /proc/$1/status | grep -o '[0-9]*'
itu yang kamu butuhkan. (Sangat jarang alat Unix melakukanif [ -z ]; then read
hal itu.)echo $$ | ppid | ppid | ppid
< /some/file grep | grep | ...
.grep /some/file
Di Linux:
sumber
Contoh yang sedikit lebih kompleks yang memeriksa perintah orang tua yang memulai proses saat ini. Ubah comm = ke cmd = untuk melihat perintah penuh
sumber
Ini adalah solusi cepat yang juga bisa digunakan:
sumber
Jalankan
top
dengan opsi apa pun yang Anda inginkan-u username and -p PID
.Dan saat
top
sedang bekerja tekan f, itu menunjukkan daftar opsi yang ingin Anda tampilkan dalamtop
output, dan parameter yang ditampilkan akan ditampilkan dalam huruf kapital dan parameter yang menampilkan atau tidak akan ditampilkan dalam huruf kecil.Jadi dengan memasukkan huruf sebelum parameter Anda dapat mengaktifkan atau menonaktifkannya. Untuk ID proses induk Anda harus memasukkan bdan kemudian tekan Enter, itu akan menampilkan PPID di output atas.
sumber
htop
Anda dapat mengkonfigurasiPPID
kolom.