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.
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 - .
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.
Quando accedi e apri Terminal / iTerm, ti trovi nel contesto Aqua .
Il contestoLoginwindow è 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.
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
Leggi altre domande sui tag services macos snow-leopard