Existem processos que * não * estão listados no Activity Monitor? Se sim, como posso obter informações sobre eles?

3

Estou executando o SL no meu Macbook pro (modelo 8,1) com 4 GB de RAM. Como é agora, tenho apenas iTerm2, QuickSilver e Activity Monitor em execução (e alguns daemons em segundo plano, por exemplo, Dropbox e Citations, sem usar mais do que 20-30 MB). Quando eu verifico o uso de memória, ele mostra mais de 900 MB como Wired e quase um show como Active .

Verificada a lista de Meus processos, o processo principal parece estar comendo de 60 a 70 MB. Se eu listar todos os processos hierarquicamente, vejo kernel_task , que usa cerca de 350 MB. Escusado será dizer que isto é muito peculiar.

Sendo o nerd paranóico que sou, comecei a pensar se teria algum malware oculto consumindo recursos nos bastidores. Existe uma maneira de verificar isso? Caso contrário, qual poderia ser a razão para esse alto uso inexplicado de mem?

    
por posdef 07.11.2012 / 14:17

1 resposta

3

Como seu usuário, você só pode ver seu bootstrap launchd no OSX. Você mora no domínio Aqua. Então, para ver tudo o que está correndo por sua causa:

launchctl list

Mostrará o que está carregado. Isso não é tudo, no entanto. launchctl tem muitas opções, como:

bslist [PID | ..] [-j]
          This prints out Mach bootstrap services and their respective
          states. While the namespace appears flat, it is in fact hierar-
          chical, thus allowing for certain services to be only available
          to a subset of processes. The three states a service can be in
          are active ("A"), inactive ("I") and on-demand ("D").

          If [PID] is specified, print the Mach bootstrap services avail-
          able to that PID. If [..] is specified, print the Mach bootstrap
          services available in the parent of the current bootstrap. Note
          that in Mac OS X v10.6, the per-user Mach bootstrap namespace is
          flat, so you will only see a different set of services in a per-
          user bootstrap if you are in an explicitly-created bootstrap
          subset.

          If [-j] is specified, each service name will be followed by the
          name of the job which registered it.

Assim como seu usuário:

launchctl bslist -j

Dará a você tudo o que é carregado no launchd atualmente, qualquer coisa que esteja realmente em execução terá um 'A' ao lado dele.

...

A  com.apple.cookied (com.apple.cookied)
D  com.apple.coreservices.quarantine-resolver (com.apple.coreservices.uiagent)

Aqui cookied (wtf?) está em execução. Abaixo, o resolvedor de quarentena é carregado, mas não está sendo executado.

Agora, talvez você esteja inclinado a tentar algo como:

sudo launchctl list

Pensando que, como root, você verá tudo. Não. A raiz vive no domínio do sistema e não pode realmente vê-lo claramente. Você obterá as coisas em execução no sistema, ou domínio daemon.

Lendo a página man, você encontrará:

sudo launchctl bstree -j   # This should show you everything.
ps au

Como o comando que lhe fornece toda a Mach Tree que está sendo executada no sistema.

Monitor de atividades mostra algumas coisas, mas eu não gosto muito de depender disso.

Referência:

link

    
por 09.11.2012 / 01:43