Podemos instalar o GNU coreutils via brew
. Mas não há ps
nos utils . Podemos usar o gnu ps
no OS X?
Eu gostaria de usar o GNU ps
, pois tem mais opções e recursos.
macos
command-line
Sanghyun Lee
fonte
fonte
ps
oups -ef
em um terminal no OSX? funciona para mim no OSX 10.7.5 sem modificações, em duas máquinas diferentes. É em / bin / psps
porque ele tem mais opções e recursos.Respostas:
Não existe um programa ps portátil. O comando ps disponível no linux é, como outros já mencionaram, do pacote "procps". A razão pela qual isso não pode ser portado para o OSX é porque os kernels Linux e OSX não expõem essas informações da mesma maneira. O Linux usa um pseudo-sistema de arquivos em / proc, enquanto o OSX usa a função sysctl. Outros sistemas podem usar qualquer um dos mecanismos, mas fornecem dados em um formato diferente ou podem exigir que programas como ps leiam diretamente da memória do kernel.
Em geral, não existe um padrão de como as informações do processo estão disponíveis para programas como ps e top; portanto, o programa deve ser projetado para um sistema operacional específico. Se houver um recurso específico ausente no OSX ps, você terá que encontrar outro programa que possa fazê-lo, ou escrever você mesmo (consulte o manual sysctl, em particular KERN_PROC como ponto de partida) ou modifique o ps existente comando para adicionar o recurso.
Como alternativa, se você conseguir o que precisa analisando a saída do próprio comando ps, poderá escrever um programa portátil - a saída com a
-o
opção é razoavelmente confiável entre plataformas, principalmente se você se referir ao padrão UNIX para o nomes de colunas a serem usados.fonte
/proc
sistema de arquivos é o único método que o kernel do Linux fornece para obter uma lista de processos ou também há chamadas de sistema separadas que fornecem essas informações?Não - uma vez que não existe. Quanto ao porquê não existe embutido
ps
no GNUcoreutils
pacote, consulte esta resposta nos fóruns Unix e Linux.A melhor fórmula alternativa disponível via Homebrew é
psgrep
:Dito isto, você ainda pode
psgrep
se comportar como o OS Xps
faria. Por exemplo:pgrep
também está disponível viabrew
, que é sintaticamente mais próximaps
, mas menos eficiente quepsgrep
:Toda ênfase é minha.
fonte
pgrep
faz parte de versões recentes do OS X tambémtype -a pgrep
pgrep is /usr/local/bin/pgrep
pgrep is /usr/bin/pgrep
proctools
pacote do MacPorts ou Homebrew fornecepgrep
epkill
é o que eu pessoalmente procurava quando apareci aqui.ps
não faz parte dos coreutils do GNU, de acordo com a Wikpedia . A versão que vem com minha distribuição Linux parece ser de procps , mas parece que não há fórmula para isso no homebrew. Existem fórmulas para aspstree
quais você pode fornecer excelentes visualizações de árvore e tambémhtop
é outro bom visualizador de processos.fonte