GNU बर्तनों में, ps auxf
वन (वृक्ष) के साथ प्रक्रिया सूची देता है। क्या बीएसडी / ओएस एक्स सिस्टम में इस कमांड के लिए एक समान है?
GNU बर्तनों में, ps auxf
वन (वृक्ष) के साथ प्रक्रिया सूची देता है। क्या बीएसडी / ओएस एक्स सिस्टम में इस कमांड के लिए एक समान है?
जवाबों:
pstree आमतौर पर bsd सिस्टम पर डिफॉल्ट इंस्टॉल या आसानी से इंस्टॉल होने योग्य का हिस्सा है। यही मैं उपयोग करता हूं। उदाहरण के लिए, आप इसे मैक पर मैकपोर्ट के माध्यम से इंस्टॉल कर सकते हैं ।
ps
इस क्षमता नहीं है, लेकिन मैं खुद के साथ प्रबंधित करेंगे pstree
। इसका उल्लेख करने के लिए धन्यवाद!
Htop भी एक बहुत अच्छी प्रक्रिया दर्शक है, और इसमें "ट्री" दृश्य है क्योंकि यह निम्न स्थिति पट्टी (F5) में मुख्य विकल्पों में से एक है।
brew install htop
।
अब तक मुझे विश्वास नहीं है कि OSX में एक अंतर्निहित है जो यह करता है।
लेकिन यहाँ एक जवाब मैं पर तैनात है stackexchange रूप में अच्छी तरह; एक छोटी सी पर्ल स्क्रिप्ट जो प्रक्रिया पदानुक्रम को निर्धारित करती है और OSX के अंतर्निहित ps (1) के आउटपुट का उपयोग करके इसे एक इंडेंट रूप में प्रिंट करती है।
OSX 10.6 और 10.9 पर परीक्षण किया गया है, और साथ ही लिनक्स पर काम करना चाहिए (विज्ञान लिनक्स 6)।
#!/usr/bin/perl
# treeps -- show ps(1) as process hierarchy -- v1.0 erco@seriss.com 07/08/14
my %p; # Global array of pid info
sub PrintLineage($$) { # Print proc lineage
my ($pid, $indent) = @_;
printf("%s |_ %-8d %s\n", $indent, $pid, $p{$pid}{cmd}); # print
foreach my $kpid (sort {$a<=>$b} @{ $p{$pid}{kids} } ) { # loop thru kids
PrintLineage($kpid, " $indent"); # Recurse into kids
}
}
# MAIN
open(FD, "ps axo ppid,pid,command|");
while ( <FD> ) { # Read lines of output
my ($ppid,$pid,$cmd) = ( $_ =~ m/(\S+)\s+(\S+)\s(.*)/ ); # parse ps(1) lines
$p{$pid}{cmd} = $cmd;
$p{$pid}{kids} = ();
push(@{ $p{$ppid}{kids} }, $pid); # Add our pid to parent's kid
}
PrintLineage(1, ""); # recurse to print lineage starting with pid 1
यह OSX पर काम नहीं करता है, लेकिन FreeBSD के लिए -d विकल्प के साथ ps (1) कमांड है। इस तरह दिखता है:
% ps auxwwwd
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 0 0,0 0,0 0 304 - DLs 15:23 0:05,12 [kernel]
root 11 400,0 0,0 0 64 - RL 15:23 712:54,09 - [idle]
root 1 0,0 0,0 10004 140 - ILs 15:23 0:00,02 - /sbin/init --
root 309 0,0 0,0 11392 1372 - Is 15:23 0:00,08 |-- dhclient: em0 [priv] (dhclient)
_dhcp 355 0,0 0,0 11556 1444 - Is 15:23 0:00,06 |-- dhclient: em0 (dhclient)
root 404 0,0 0,0 14236 664 - Ss 15:23 0:01,57 |-- /sbin/devd
root 546 0,0 0,0 11360 1320 - Ss 15:23 0:00,63 |-- /usr/sbin/syslogd -s
root 678 0,0 0,0 17908 1252 - Is 15:24 0:00,00 |-- /usr/sbin/sshd
root 751 0,0 0,0 18312 1312 - Is 15:25 0:00,04 | `-- sshd: trasz [priv] (sshd)
trasz 753 0,0 0,0 18948 2012 - S 15:25 0:01,83 | `-- sshd: trasz@pts/0 (sshd)
trasz 754 0,0 0,0 13948 0 0 IWs - 0:00,00 | `-- -zsh (zsh)
trasz 765 0,0 0,0 15164 1456 0 I+ 15:25 0:00,01 | `-- tmux: client (/tmp/tmux-1001/default) (tmux)
root 681 0,0 0,0 15744 1740 - Ss 15:24 0:00,39 |-- sendmail: accepting connections (sendmail)
smmsp 684 0,0 0,0 15588 804 - Is 15:24 0:00,01 |-- sendmail: Queue runner@00:30:00 for /var/spool/clientmqueue (sendmail)
root 688 0,0 0,0 11384 640 - Is 15:24 0:00,10 |-- /usr/sbin/cron -s
root 733 0,0 0,0 12428 484 - Is 15:24 0:00,04 |-- /usr/sbin/autounmountd
root 738 0,0 0,0 10860 1112 - Is 15:24 0:00,00 |-- /usr/sbin/automountd
trasz 767 0,0 0,4 30036 17168 - Ss 15:25 0:01,97 |-- tmux: server (/tmp/tmux-1001/default) (tmux)
trasz 768 0,0 0,1 13888 2592 1 Is+ 15:25 0:00,05 | |-- -zsh (zsh)
trasz 11313 0,0 0,1 13952 3984 2 Is+ 21:05 0:00,07 | |-- -zsh (zsh)
trasz 11531 0,0 0,1 13952 3980 3 Is+ 21:55 0:00,05 | |-- -zsh (zsh)
trasz 37987 0,0 0,1 13920 4260 5 Ss 22:06 0:00,04 | |-- -zsh (zsh)
trasz 37998 0,0 0,1 11796 2512 5 R+ 22:07 0:00,00 | | `-- ps auxwwwd
trasz 25549 0,0 0,1 13952 3980 4 Is+ 21:57 0:00,08 | `-- -zsh (zsh)
root 743 0,0 0,0 10900 1100 v0 Is+ 15:24 0:00,00 |-- /usr/libexec/getty Pc ttyv0
root 744 0,0 0,0 10900 1100 v1 Is+ 15:24 0:00,01 |-- /usr/libexec/getty Pc ttyv1
root 745 0,0 0,0 10900 1100 v2 Is+ 15:24 0:00,00 |-- /usr/libexec/getty Pc ttyv2
root 746 0,0 0,0 10900 1100 v3 Is+ 15:24 0:00,01 |-- /usr/libexec/getty Pc ttyv3
root 747 0,0 0,0 10900 1100 v4 Is+ 15:24 0:00,00 |-- /usr/libexec/getty Pc ttyv4
root 748 0,0 0,0 10900 1100 v5 Is+ 15:24 0:00,00 |-- /usr/libexec/getty Pc ttyv5
root 749 0,0 0,0 10900 1100 v6 Is+ 15:24 0:00,00 |-- /usr/libexec/getty Pc ttyv6
root 750 0,0 0,0 10900 1100 v7 Is+ 15:24 0:00,01 `-- /usr/libexec/getty Pc ttyv7
root 2 0,0 0,0 0 16 - DL 15:23 0:00,00 - [crypto]
root 3 0,0 0,0 0 16 - DL 15:23 0:00,00 - [crypto returns]
root 4 0,0 0,0 0 32 - DL 15:23 2:16,26 - [cam]
root 5 0,0 0,0 0 16 - DL 15:23 0:00,00 - [mpt_recovery0]
root 6 0,0 0,0 0 16 - DL 15:23 0:00,01 - [soaiod1]
root 7 0,0 0,0 0 16 - DL 15:23 0:00,01 - [soaiod2]
root 8 0,0 0,0 0 16 - DL 15:23 0:00,01 - [soaiod3]
root 9 0,0 0,0 0 16 - DL 15:23 0:00,01 - [soaiod4]
root 10 0,0 0,0 0 16 - DL 15:23 0:00,00 - [audit]
root 12 0,0 0,0 0 800 - WL 15:23 2:21,06 - [intr]
root 13 0,0 0,0 0 48 - DL 15:23 0:00,03 - [geom]
root 14 0,0 0,0 0 240 - DL 15:23 0:10,36 - [usb]
root 15 0,0 0,0 0 16 - DL 15:23 0:00,00 - [sctp_iterator]
root 16 0,0 0,0 0 16 - DL 15:23 0:23,43 - [rand_harvestq]
root 17 0,0 0,0 0 48 - DL 15:23 0:35,10 - [pagedaemon]
root 18 0,0 0,0 0 16 - DL 15:23 0:05,36 - [vmdaemon]
root 19 0,0 0,0 0 32 - DL 15:23 1:10,04 - [bufdaemon]
root 20 0,0 0,0 0 16 - DL 15:23 0:06,68 - [bufspacedaemon]
root 21 0,0 0,0 0 16 - DL 15:23 0:35,66 - [syncer]
root 22 0,0 0,0 0 16 - DL 15:23 0:00,86 - [vnlru]
root 23 0,0 0,0 0 16 - DL 15:23 0:04,96 - [racctd]
यदि आप वास्तव में GNU ps से प्यार करते हैं, तो आप इसे OSX पर एक बड़े 3 पैकेज सिस्टम के माध्यम से स्थापित कर सकते हैं:
pkgsrc (NetBSD) - मेरा पसंदीदा चूंकि यह सबसे लोकप्रिय यूनिक्स पर काम करता है
MacPorts (OSX)
फ़िंक (डेबियन, लेकिन पैकेजसेट को साझा नहीं करता है, और निश्चित रूप से बिल्ड्स को साझा नहीं करता है)
यहाँ मैं जवाब पर एक लिंक है जो मैंने stackexchange पर पोस्ट किया है: /apple//a/383505/364338
"Ps" के मेरे संस्करण (आवरण) से लिंक करें: https://github.com/jhthorsen/snippets/blob/master/bin/ps
--- अपडेट करें ---
मैंने एक अलग स्क्रिप्ट बनाई, जो आपको (आमतौर पर) उन तर्कों को लेना चाहिए जो आप आमतौर पर OSX पर "ps" को दे सकते हैं:
https://github.com/jhthorsen/snippets/blob/master/bin/ps
उदाहरण आउटपुट:
$ ps Af
PID TTY STAT TIME COMMAND
1 ?? Ss 198:44.08 /sbin/launchd
141 ?? Ss 2:40.76 \_ /usr/sbin/syslogd
142 ?? Ss 6:54.11 \_ /usr/libexec/UserEventAgent (System)
145 ?? Ss 0:32.48 \_ /System/Library/PrivateFrameworks/Uninstall.framework/Resources/uninstalld
146 ?? Ss 1:12.84 \_ /usr/libexec/kextd
147 ?? Ss 18:51.47 \_ /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.f
148 ?? Ss 0:14.31 \_ /System/Library/PrivateFrameworks/MediaRemote.framework/Support/mediaremoted
151 ?? Ss 59:43.39 \_ /usr/sbin/systemstats --daemon
441 ?? S 0:05.39 \_ /usr/sbin/systemstats --logger-helper /private/var/db/systemstats
...
> ps Af -o ppid,pid,cpu,command
PPID PID CPU COMMAND
0 1 0 /sbin/launchd
1 141 0 \_ /usr/sbin/syslogd
1 142 0 \_ /usr/libexec/UserEventAgent (System)
1 145 0 \_ /System/Library/PrivateFrameworks/Uninstall.framework/Resources/uninstalld
1 146 0 \_ /usr/libexec/kextd
1 147 0 \_ /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versi
1 148 0 \_ /System/Library/PrivateFrameworks/MediaRemote.framework/Support/mediaremoted
1 151 0 \_ /usr/sbin/systemstats --daemon
151 441 0 \_ /usr/sbin/systemstats --logger-helper /private/var/db/systemstats