OS X'te GNU ps kullanabilir miyim?


18

Biz yapabilirsiniz GNU coreutils yüklemek yoluyla brew. Ama araçlarda hiç yokps . Gnu psOS X'te kullanabilir miyiz ?

Daha psfazla seçenek ve özelliğe sahip olduğu için GNU kullanmak istiyorum .


çalıştırmakta denediniz var psya ps -efOSX üzerinde terminalde? benim için OSX 10.7.5 üzerinde hiçbir değişiklik olmadan, iki farklı makinede çalışıyor. İçinde / bin / ps
jammypeach

Evet, biliyorum, psdaha fazla seçenek ve özelliğe sahip olduğu için GNU kullanmak istedim .
Sanghyun Lee

Ah tamam, üzgünüm bunu belirtilen sorudan fark etmedim. Bunu bir yere dahil
etmenizi

Öneri için teşekkürler. Bununla ilgili daha fazla açıklama ekledim.
Sanghyun Lee

Yanıtlar:


22

Taşınabilir bir ps programı yoktur. Linux'ta bulunan ps komutu, diğerlerinin de belirttiği gibi, "procps" paketindendir. Bunun OSX'e taşınamamasının nedeni, Linux ve OSX çekirdeklerinin bu bilgileri aynı şekilde göstermemesidir. Linux / proc içinde sözde dosya sistemi kullanırken OSX sysctl işlevini kullanır. Diğer sistemler her iki mekanizmayı da kullanabilir ancak farklı bir biçimde veri sağlayabilir veya ps gibi programların doğrudan çekirdeğin belleğinden okunmasını gerektirebilir.

Genel olarak ps ve top gibi programlar için işlem bilgilerinin nasıl kullanılabilir olduğuna dair bir standart yoktur; bu nedenle program belirli bir işletim sistemi için tasarlanmalıdır. OSX ps'de eksik olan belirli bir özellik varsa, bunu yapabilen başka bir program bulmanız veya kendiniz yazmanız gerekir ( sysctl kılavuzuna, özellikle başlangıç ​​noktası olarak KERN_PROC'a bakın ) veya mevcut ps'i değiştirmelisiniz . özelliği ekleme komutu .

Alternatif olarak, ps komutunun çıktısını ayrıştırarak ihtiyacınız olanı alabilirseniz, taşınabilir bir program yazabilirsiniz - -oseçenekli çıktı , özellikle platformlar için UNIX standardına başvurursanız , platformlar arasında oldukça güvenilirdir . kullanılacak sütun adları.


/procdosya sistemi Linux çekirdeği işlemlerin bir listesini elde etmek için sağlayan tek yöntem veya bu bilgileri sağlamak ayrı bir sistem çağrıları da vardır?
Tanner Swett

1
@TannerSwett Ben öyle düşünmüyorum. / Proc uygulanmadan önce, linux üzerindeki ps komutu / dev / kmem ve / dev / swap öğelerini okuyarak çalıştı.
Random832

9

Hayır - mevcut olmadığından. GNU'nun paketinde neden yerleşik bulunmadığına gelince , bu cevaba Unix ve Linux Forumları'nda bakın.pscoreutils

Homebrew aracılığıyla mevcut en iyi alternatif formül psgrep:

psgrep, gücü için müthiş yardımcı grep (1) kullanarak işlem listesini ( ps (1) tarafından elde edildiği gibi) araştıran küçük bir Bash kabuk betiğidir .

Bununla birlikte, psgrepOS X'lerin yaptığı gibi davranmaya devam edebilirsiniz ps. Örneğin:

   OPTIONS
   -a     Search the process list using BSD's "ps aux" format. This option
          includes all users' processes in the search.

   -b     Search the process list using BSD's "ps  ux"  format  (default).
          This option only includes the running user's processes.

pgrep, brewsözdizimsel olarak daha yakın ps, ancak aşağıdakilerden daha az etkili olan şu yöntemlerle de kullanılabilir psgrep:

psgrep (1) pgrep (1) ' den daha kullanışlıdır, çünkü sadece işlem listesinde arama yapıp bir PID döndürmekle kalmaz, aynı zamanda UID, GID, bellek / CPU kullanımı, güzelliği ve desteklenen herhangi bir şey gibi daha yararlı bilgiler verebilir ps.


Tüm vurgu benim.


2
pgrepde OS X'in son sürümlerinin bir parçası
nohillside

@patrix agh! iyi bir nokta, doğruladı:type -a pgrep pgrep is /usr/local/bin/pgrep pgrep is /usr/bin/pgrep
njboot

Bir kenara olduğu gibi, burada belirtildiği gibi , proctoolsMacPorts veya Homebrew'un paketi sağlar pgrepve pkillburaya geldiğimde kişisel olarak aradığım şey budur.
thedudeabides

3

psuygun GNU coreutils bir parçası değildir Wikpedia . Linux dağıtımımla gelen sürüm procps'den geliyor gibi görünüyor, ancak homebrew'da bunun için bir formül yok gibi görünüyor. pstreeSize harika ağaç görünümleri verebilecek formüller vardır ve aynı zamanda htopiyi bir süreç görüntüleyicisidir.

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.