GNU “ps auxf” komutunun OS X / BSD eşdeğeri nedir? [kapalı]


13

GNU araçlarında ps auxforman (ağaç) içeren işlem listesini verir. BSD / OS X sistemlerinde bu komutun eşdeğeri var mı?



Komut satırı sürümünü kullanmanız büyük önem taşıyor mu? Sadece ağacı görmek istiyorsanız, neden "Etkinlik Monitörü" nü kullanmıyorsunuz ve "Tüm İşlemler, Hiyerarşik" i seçmiyorsunuz?
AlanGBaker

Yanıtlar:


9

pstree genellikle varsayılan kurulumun bir parçasıdır veya BSD sistemlerine kolayca kurulabilir. Ben bunu kullanıyorum. Örneğin, bir mac'ta macports üzerinden yükleyebilirsiniz .


psBu yeteneğe sahip olmayan çok kötü , ama kendimi yöneteceğim pstree. Bahsettiğiniz için teşekkürler!
vdboor

7
ya brew install pstreeile Hombrew
cwd

@cwd yorumunuz cevap olmalı :)
okutane

6

Htop da gerçekten iyi bir süreç görüntüleyicisidir ve alt durum çubuğundaki (F5) ana seçeneklerden biri olarak "ağaç" görünümüne sahiptir.

resim açıklamasını buraya girin


2
Homebrew ile OSX'e kurmak için kullanın brew install htop.
16:46 jsears

3

Şimdiye kadar OSX'in bunu yapan bir yerleşik olduğuna inanmıyorum.

Ama işte stackexchange'e gönderdiğim bir cevap ; işlem hiyerarşisini belirleyen ve OSX'in yerleşik ps (1) çıktısını kullanarak girintili bir biçimde basan küçük bir perl betiği.

OSX 10.6 ve 10.9 üzerinde test edilmiştir ve linux üzerinde de çalışmalıdır (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

Bu OSX üzerinde çalışmaz, ancak FreeBSD için -d seçeneğiyle ps (1) komutu. Buna benzer:

% 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'yi gerçekten seviyorsanız, büyük 3 paket sistemlerinden biri aracılığıyla OSX'e yükleyebilirsiniz:

pkgsrc (NetBSD) - en popüler Unix'lerde çalıştığı için favorim

MacPorts (OSX)

Fink (Debian, ancak paket kümesini paylaşmaz ve elbette derlemeleri paylaşmaz)


4
Paketin adı ne? MacPorts aradığım şey, ancak diğerlerinin üçünü de bilmesi faydalı olacaktır.
Jim Stewart

2
-1 - biraz yanlış görünüyor. doğruysa, lütfen paket yönetim sistemlerinden (özellikle MacPorts) bahsetmekten ziyade bu paket sistemlerini nasıl kuracağınızla ilgili daha fazla ayrıntıyla cevabınızı destekleyin
cwd

0

Stackexchange'te gönderdiğim cevaba bir link: /apple//a/383505/364338

"Ps" sürümümün (sarmalayıcı) bağlantısı: https://github.com/jhthorsen/snippets/blob/master/bin/ps

--- Güncelleme ---

Ben normalde OSX "ps" verebilir tüm argümanları alır (almalı?) Farklı bir komut dosyası yaptım:

https://github.com/jhthorsen/snippets/blob/master/bin/ps

Örnek çıktı:

$ 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

Bu bağlantı soruyu cevaplayabilirken, cevabın önemli kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir. - Yorumdan
bjoster

1
Bunun için üzgünüm. #newbieposting
Jan Henning Thorsen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.