Come mostrare un elenco di processi che vengono lanciati su un accesso?

4

Ci sono alcuni processi che vengono lanciati su un login, come ottenere un elenco di questi processi?
Voglio impedire l'avvio automatico di alcuni processi.

    
posta Chiron 18.06.2011 - 22:07
fonte

2 risposte

2

launchd e il pannello Elementi di login delle preferenze Account sono le due posizioni che normalmente avviano un processo quando si accede.

Se non vedi l'elemento in Preferenze di Sistema - > Account - > account specifico - > Login Items, quindi dovrai guardare in launchd.

Sostanzialmente le cartelle LaunchAgent e LaunchDaemon in ~ / Library

Infine, se non ci sono, allora è un'attività launchd a livello di sistema che potresti voler usare launchctl per mostrare o cercare in / Library al posto della libreria a livello utente.

La maggior parte delle persone deve solo gestire il pannello delle preferenze. Ecco un mio scatto che mostra Activity Monitor selezionato e pronto per essere eliminato se premo il pulsante - .

    
risposta data 18.06.2011 - 22:12
fonte
1

Devi investigare su launchctl(1) perché ci sono un paio di contesti di cui dovrai tener conto.

Il modo più semplice è guardare i file plist in:

/ System / Library / LaunchDaemons # System Context. Faceless. la radice vive qui. / System / Library / LaunchAgents # Loginwindow, o Aqua, dove vivi, context / Library / LaunchDaemons / Library / LaunchAgents ~ / Library / LaunchDaemons ~ / Library / LaunchAgents

Nel file vedrai lo stato predefinito di quel demone o agente. Questo è un modo sicuro per sapere se è in esecuzione all'avvio.

Cito il metodo sopra degradante, folle e che richiede tempo, perché è bello vedere tutte le cose in esecuzione. Sostengono che le risorse utilizzate sono basse per un demone caricato ma dormiente, ma dal momento che il 95% + di loro sono impostati su RunOnDemand ... per me è in esecuzione.

In realtà non lo faccio per davvero. C'è un modo molto più semplice.

Ricorda

Quando accedi e apri Terminal / iTerm, ti trovi nel contesto Aqua .

Il contesto

Loginwindow è quando vedi la finestra di accesso, non sorprendentemente, e un sacco di cose scappano da quello.

Se tu

sudo zsh  # why not be comfortable?

o qualche altro metodo per ottenere una shell di root, l'utente root si troverà nel contesto System , che è il contesto in cui vengono eseguiti tutti i daemon in / System / Library / LaunchDaemons.

Cito tutto questo perché lo strumento ha fornito:

man 1 launchctl

ha un verbo,

launchctl list

che potresti pensare dalla pagina man, elenca tutti i servizi in esecuzione. Potresti sentire plausibile, passare a root, per ottenere una visualizzazione di livello superiore di ciò che viene eseguito quando esegui il login.

Purtroppo, ogni utente vede il proprio contesto.

launchctl managername 

ti dirà di cosa si tratta.

Per root, il suo sistema. Dal mio nifty utente amministratore nascosto, è Sfondo , che è la stessa cosa che ottieni digitando

>console

nella casella nome utente per l'accesso

Puoi usare il verbo

launchctl bslist  

Che ti dice quali servizi sono attivi, per tu . È diverso per _spotlight, per l'amministratore nascosto, per root, per macport ecc.

risposta

Il comando per vedere l'intero albero, è

sudo launchctl bstree [-j]

qualsiasi cosa tu vedi quando la esegui dopo l'avvio è ciò che è in esecuzione a livello di sistema. Per la tua identità:

launchctl bslist 
    
risposta data 19.09.2011 - 01:37
fonte

Leggi altre domande sui tag