OS X / BSD เทียบเท่ากับคำสั่ง GNU“ ps auxf” คืออะไร? [ปิด]


13

ใน GNU utils ps auxfให้รายการกระบวนการกับฟอเรสต์ (ต้นไม้) มีคำสั่งนี้เทียบเท่ากับระบบ BSD / OS X หรือไม่?



เป็นสิ่งสำคัญอย่างยิ่งหรือไม่ที่คุณใช้เวอร์ชันบรรทัดคำสั่ง หากคุณต้องการเห็นต้นไม้ทำไมไม่ใช้ "การตรวจสอบกิจกรรม" และเลือก "กระบวนการทั้งหมดตามลำดับชั้น"?
AlanGBaker

คำตอบ:


9

pstree เป็นส่วนหนึ่งของการติดตั้งเริ่มต้นหรือติดตั้งได้ง่ายในระบบ bsd นั่นคือสิ่งที่ฉันใช้ ตัวอย่างเช่นคุณสามารถติดตั้งผ่านทางmacportsบน mac


เลวร้ายเกินไปที่psไม่ได้มีความสามารถนี้ pstreeแต่ฉันจะจัดการตัวเองด้วย ขอบคุณที่พูดถึงมัน!
vdboor

7
หรือbrew install pstreeกับhombrew
cwd

@cwd ความคิดเห็นของคุณควรเป็นคำตอบ :)
okutane

6

Htopยังเป็นตัวแสดงกระบวนการที่ดีมากและมีมุมมอง "ต้นไม้" เป็นหนึ่งในตัวเลือกหลักในแถบสถานะด้านล่าง (F5)

ป้อนคำอธิบายรูปภาพที่นี่


2
การติดตั้งใน OSX กับ homebrew brew install htopใช้
jsears

3

จนถึงตอนนี้ฉันไม่เชื่อว่า OSX มีตัวในการทำเช่นนี้

แต่นี่คือคำตอบที่ฉันโพสต์บนstackexchangeเช่นกัน; สคริปต์ perl ขนาดเล็กที่กำหนดลำดับชั้นของกระบวนการและพิมพ์ในรูปแบบการเยื้องโดยใช้เอาต์พุตของ ps ในตัวของ OSX (1)

ทดสอบบน OSX 10.6 และ 10.9 และควรทำงานบน linux เช่นกัน (Sci Linux 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

1

สิ่งนี้ใช้ไม่ได้กับ OSX แต่สำหรับ FreeBSD เป็นคำสั่ง ps (1) พร้อมตัวเลือก -d ดูเหมือนว่านี้:

% 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]

0

ถ้าคุณรัก GNU ps จริงๆคุณสามารถติดตั้งลงบน OSX ผ่านหนึ่งในสามระบบใหญ่:

pkgsrc (NetBSD) - ฉันชอบเพราะมันใช้กับยูนิกซ์ที่ได้รับความนิยมมากที่สุด

MacPorts (OSX)

Fink (Debian แต่ไม่แชร์แพ็กเกจและแน่นอนไม่ได้แชร์บิลด์)


4
แพ็คเกจเรียกว่าอะไร? MacPorts เป็นสิ่งที่ฉันกำลังมองหา แต่มันจะเป็นประโยชน์สำหรับผู้อื่นที่จะรู้ทั้งสาม
Jim Stewart

2
-1 - ดูเหมือนไม่ถูกต้อง ถ้ามันถูกต้องโปรดสนับสนุนคำตอบของคุณพร้อมรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการติดตั้งโดยใช้ระบบแพ็คเกจเหล่านี้แทนที่จะพูดถึงระบบการจัดการแพ็กเกจ (โดยเฉพาะ MacPorts)
cwd

0

นี่คือลิงค์ไปยังคำตอบที่ฉันโพสต์บน stackexchange: /apple//a/383505/364338

เชื่อมโยงไปยังเวอร์ชันของฉัน (wrapper) ของ "ps": https://github.com/jhthorsen/snippets/blob/master/bin/ps

--- อัปเดต ---

ฉันสร้างสคริปต์อื่นที่ใช้ (ควรทำอย่างไร) อาร์กิวเมนต์ทั้งหมดที่คุณสามารถให้กับ "ps" บน OSX:

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

แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงก์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงมีการเปลี่ยนแปลง - จากรีวิว
bjoster

1
ขอโทษสำหรับเรื่องนั้น. #newbieposting
Jan Henning Thorsen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.