Ricerca dello stato reale dei lavori di avvio [chiuso]

4
launchctl list

launchctl bstree

Mostrano quali lavori sono attivi, assopiti o inattivi, presumibilmente. Non ho mai visto un lavoro inattivo personalmente. Anche quelli che ho provato a disattivare sono mostrati come 'D'

Ora, in /var/db/launchd.db ci sono file di testo che mostrano, per utente, quali lavori sono effettivamente disabilitati, purtroppo il vecchio parametro -w è stato deprecato e la chiave Disabled nel plist è solo un default . Non so perché farebbero una cosa del genere, sembra che non ci sia modo di dire definitivamente

"Il servizio X è disattivato."

Sembra che in esecuzione come root dovrei essere in grado di chiedere cosa è attivo e cosa è spento. Cosa sto sbagliando?

EDIT: Quello che stavo facendo è sbagliato ignorando

/var/db/launchd.db/com.apple.launchd/overrides.plist

Quale è il luogo definitivo apparentemente per lo stato attuale di un demone.

Facilmente, questo significa che il valore predefinito sarà nei file plist in / Sistema / Avvia * / Library / Launch * ~ / Library / Launch * e si può semplicemente spazzare via (errrm copiare e spostare) quella directory e riavviare su un set predefinito. Questo ha funzionato per me di recente.

    
posta chiggsy 17.07.2011 - 13:28
fonte

3 risposte

3

Lo stato vero è se un lavoro è attualmente caricato o meno.

Rileggi la filosofia di lancio - Gli elementi 4 e 1 spiegano che launchd attende fino all'ultimo momento prima di avviare l'attività secondaria e che tale processo arriverà e verrà eseguito con i tempi di avvio, la limitazione e la disattivazione delle attività, se necessario.

Questi sono tutti registrati per la registrazione del sistema. top e ps ti mostreranno i processi correnti. Suppongo che si possa semplicemente collegare launchd a un debugger se è necessario conoscere lo stato esatto poiché il codice corrente non crea una lista a proprio piacimento.

    
risposta data 17.07.2011 - 15:06
fonte
5

La GUI di launchd LaunchControl ti fornirà un elenco di servizi insieme al loro rispettivo stato. Puoi vedere se un lavoro è stato disabilitato guardando la casella di controllo accanto al nome del lavoro. Una casella di controllo colorata indica che la chiave disabilitata è stata sostituita: una casella di controllo rossa indica un lavoro permanentemente disabilitato, uno verde per un lavoro permanentemente abilitato.

    
risposta data 31.10.2013 - 19:01
fonte
-1

Grazie alle informazioni di chiggsy, siamo stati in grado di risolvere un problema in Mountain Lion, dove org.apache.httpd veniva visualizzato come non in esecuzione in "elenco launchctl", ma di fatto era in esecuzione dopo il riavvio, impedendo MacPorts httpd per eseguire propperly. Modificato il file overrides.plist e set org.apache.httpd disabled = true ha fatto il trucco. Deve esserci qualcosa che accade nell'aggiornamento da Lion a Mountain Lion che ha abilitato com.apache.httpd.

    
risposta data 14.08.2012 - 14:47
fonte

Leggi altre domande sui tag