Le app in background nascoste potrebbero rallentare il tuo Mac. Ecco come correggere quel potenziale impatto sulle prestazioni del tuo Mac.

In qualsiasi sistema informatico basato su UNIX, incluso macOS, il sistema operativo esegue una varietà di processi in background per eseguire determinate attività in modo silenzioso. Su macOS, questi sono generalmente divisi in due categorie: demoni e agenti.

Un demone è un’attività in background senza volto che viene eseguita continuamente per eseguire alcune attività. Esistono diversi demoni comuni su macOS: launchd per avviare altri processi, account (che gestisce gli account utente), cloudd-che esegue i servizi iCloud, bluetoothd-per i servizi BlueTooth e molti altri.

Simili ai demoni sono agenti, app in background che possono interagire con il primo piano applicazioni e occasionalmente presentano piccole interfacce utente. securityd è uno di questi esempi, poiché vedi questo agente in azione ogni volta che il tuo Mac richiede una password di amministratore.

Puoi visualizzare la maggior parte dei processi, inclusi demoni e agenti, in esecuzione sul tuo Mac aprendo l’app Activity Monitor di macOS che si trova nella cartella Utility sul tuo disco di avvio. Puoi anche visualizzare i dettagli sui processi in esecuzione nel Terminale digitando top e premendo Invio.

La maggior parte dei demoni e degli agenti di sistema di Apple è stata perfezionata nel corso degli anni. Dopo decenni di sviluppo, funzionano in modo fluido e senza interruzioni, quindi non ti accorgi quasi mai che funzionino.

Ma esistono anche demoni e agenti di terze parti. Se sono scritti male, possono funzionare male, ridurre il tempo della CPU, causare un accesso eccessivo al disco e comportarsi in altri modi che possono rallentare il tuo Mac.

Posizioni

Attualmente su macOS, i demoni e gli agenti risiedono in due cartelle all’interno della cartella/Library: LaunchAgents e LaunchDaemons.

In realtà, i file binari del demone e dell’agente che vengono eseguiti non risiedono in queste cartelle, ma.plist, o file dell’elenco delle proprietà, risiedono in entrambe le posizioni. I file.plist sono file XML che contengono coppie chiave-valore, in cui ogni chiave è un nome con un valore corrispondente.

C’è anche una seconda cartella LaunchAgents nella cartella Libreria dell’utente. Puoi aprire e visualizzare i file.plist nella maggior parte degli editor di testo o nell’IDE di Apple, Xcode.

Ogni file.plist contiene una descrizione di ciascun demone o agente, insieme a dati aggiuntivi che indicano al sistema quando e come eseguirlo. Un campo in ogni.plist è denominato”ProgramArguments”, che è un array di elementi che include percorsi nel file system in cui risiedono effettivamente i file binari da eseguire.

Ad esempio nel file XQuartz org.xquartz.startx.plist nella cartella/Library/LaunchAgents, l’array ProgramArguments contiene quattro elementi di testo, tre dei quali contengono percorsi in altre parti del file system:

/opt/X11/libexec/launchd_startx/opt/X11/bin/startx/opt/X11/bin/Xquartz

Ciascuno di questi tre percorsi punta a binari che devono essere eseguiti dal sistema in vari momenti, tutti nella cartella invisibile/opt installata da XQuartz al momento dell’installazione. Alcuni.plist possono anche contenere informazioni sull’avvio per ciascun demone o agente, ad esempio a quale intervallo avviarli e per quanto tempo.

I campi aggiuntivi nel file.plist in questo esempio includono un parametro socket UNIX, una chiave”ServiceIPC”e una chiave”EnableTransactions”.

“IPC”è l’abbreviazione di Interprocess Communication. Pensa a IPC (o nella terminologia di Apple, XPC) come a un tubo che collega due processi sul tuo Mac lungo il quale viaggia la comunicazione.

Quando il tuo Mac si avvia, macOS controlla i LaunchAgent e i LaunchDaemons cartelle, leggendo tutti i file.plist. Prende anche appunti su ciò che deve essere avviato, dove questi elementi risiedono su disco, a quale intervallo avviarli e per quanto tempo consentire loro di essere eseguiti.

Quando arriva l’ora specificata, i binari nei percorsi indicati vengono avviati ed eseguiti. Alcuni demoni e agenti vengono eseguiti continuamente, mentre altri vengono eseguiti solo periodicamente.

Gli aggiornamenti automatici sono buoni esempi di demoni che vengono eseguiti ogni tanto, quindi si chiudono dopo aver terminato le attività di aggiornamento.

Demoni scritti male

Se un demone o un agente è scritto male, può essere inefficiente e funzionare lentamente, riducendo le prestazioni complessive del sistema. Se il codice di un demone è troppo lento o impiega troppo tempo per completare alcune attività o se consuma troppo tempo della CPU, può rallentare il sistema.

Se vengono eseguiti contemporaneamente molti demoni e agenti così scritti male, si avvertirà un notevole rallentamento delle prestazioni complessive del sistema.

Anche nella cartella Libreria del tuo Mac c’è un’altra cartella chiamata”PrivilegedHelperTools”. Questi file binari vengono avviati anche tramite file.plist archiviati in LaunchAgents e LaunchDaemons.

Uno strumento di supporto privilegiato è un binario eseguibile one-shot che viene eseguito brevemente e solo perché deve aumentare il proprio livello di privilegio sul sistema, eseguire un’attività sicura e quindi uscire.

Alcune attività su macOS richiedono l’accesso come superutente e quindi diventerebbero rischi per la sicurezza se lasciate in esecuzione continuamente. Quindi gli strumenti di supporto riducono qualsiasi superficie di attacco eseguendo solo brevemente.

La logica è che se un’attività non viene eseguita come superutente, è più difficile sfruttarla come vettore di attacco da parte di un software dannoso.

Rimozione di demoni e agenti lenti

Come accennato, se troppi demoni e agenti vengono eseguiti contemporaneamente sul tuo Mac o se uno o più di essi è scritto male, può rallentare il tuo Mac. Per ripristinare le normali prestazioni in questi casi, dovrai identificare quali demoni o agenti stanno causando problemi di prestazioni, quindi disabilitare i loro file.plist e riavviare il Mac.

Ad esempio, è noto che alcuni agenti che vengono installati come parte di alcuni motori di gioco di terze parti vengono eseguiti lentamente o trascinano il sistema verso il basso. In questi casi, potresti voler spostare i loro file.plist da parte e quindi riavviare, il che ne impedirà l’avvio.

Si noti che non è necessario disinstallare completamente il software offensivo: è necessario solo spostare il software corrispondente. plist file dalle cartelle LaunchAgents e LaunchDaemons in tutte le posizioni installate e riavviare. Successivamente, se si desidera utilizzare nuovamente il software, è possibile spostare nuovamente i file.plist o reinstallare il software e riavviare nuovamente per ripristinare la funzionalità.

Per vedere quali demoni e agenti utilizzano la maggior parte delle risorse di sistema, puoi eseguire il monitor delle attività di Apple e controllare entrambe le colonne”% CPU”e”Thread”. Questi forniscono indizi su quali processi stanno caricando maggiormente le CPU del tuo Mac.

Puoi anche controllare l’utilizzo di memoria, energia, disco e rete utilizzando Activity Monitor.

Una volta determinato quali processi in background stanno monopolizzando le risorse del tuo sistema , puoi tornare alle cartelle LaunchAgents e LaunchDaemons e trascinare i file.plist corrispondenti fuori da quelle cartelle. Dovrai organizzare e tenere traccia dei file.plist in modo da sapere dove spostarli quando desideri ripristinare la funzionalità.

Per spostare i file.plist fuori dalle loro cartelle installate, dovrai inserire una password amministratore quando il Finder ti chiederà. Non dimenticare di riavviare il tuo Mac.

Un’altra opzione possibile è modificare il contenuto di ciascun file.plist se contiene intervalli e tempi di avvio: ad esempio, potresti provare ad aumentare l’intervallo di avvio in ciascun file.plist per far sì che ogni demone correre meno frequentemente.

Ma fai molta attenzione quando apporti queste modifiche poiché così facendo potresti cambiare la funzionalità del software installato.

I demoni e gli agenti progettati per essere eseguiti continuamente lo fanno per un motivo, in genere per fornire un servizio in background o un servizio a un’app in primo piano. La loro disabilitazione causerà una perdita di funzionalità se non sono in esecuzione quando un’applicazione si aspetta che lo siano.

Less is more

In generale, si desidera eseguire sul proprio sistema il minor numero possibile di demoni e agenti. Anche se sono tutti ben scritti, ognuno che viene aggiunto carica il sistema e le CPU, anche se è una piccola quantità.

Se hai diverse dozzine di demoni e agenti in esecuzione contemporaneamente, tutto si somma e inizierà a rallentare il tuo Mac.

Dopo aver installato un nuovo pacchetto software, potresti voler controllare le cartelle LaunchAgents e LaunchDaemons per vedere cosa è stato installato e se ne hai bisogno o meno.

Se sei interessato a una visione approfondita a livello di sviluppatore di come i demoni e gli agenti funzionano su macOS, dai un’occhiata a Mac Daemonology di Volodymyr Vashurkin disponibile nei libri APRESS.

Puoi anche ottenere una discussione tecnica dettagliata su come funzionano i servizi XPC di Apple sulla sua pagina web per sviluppatori.

Categories: IT Info