Risolvi i problemi delle app per Mac alla vecchia maniera con i segnali POSIX

Risolvi i problemi delle app per Mac alla vecchia maniera con i segnali POSIX / Mac

In Activity Monitor c'è un'opzione di menu criptico a Invia segnale a processo. Ti sei mai chiesto cosa fosse? Se lo selezioni, vedrai termini oscuri come SIGINT e SIGHUP, che non chiarisce esattamente le cose. Quindi, quali sono esattamente questi segnali?

Questi segnali sono il risultato della fondazione Unix Mac OS X Yosemite, dalla prospettiva di un utente Linux Mac OS X Yosemite, dalla prospettiva di un utente Linux Mac OS X è usato come poster per una interfaccia pulita ed elegante. Come scrittore di Linux, è mio dovere fare confronti tra distribuzioni Linux, ma anche contro la concorrenza. Leggi di più nel cuore di macOS. Il terminale ha alcuni di questi segnali integrati: quando colpisci Ctrl + C per interrompere un comando in esecuzione, stai inviando il processo SIGINT per interrompere e interrompere il comando attualmente in esecuzione. Erano uno dei primi modi in cui le app potevano comunicare tra loro e fanno parte del passato “Interfaccia del sistema operativo portatile” (POSIX) standard.

Benché sia ​​utile comprendere le nozioni di base su come funziona il tuo sistema, puoi anche utilizzare questi segnali per acquisire informazioni sulle applicazioni anomale.

Cos'è POSIX?

POSIX è lo standard di base per i sistemi operativi Unix e Unix-Like. Tra questi sistemi compatibili c'è macOS, che è stato realizzato per essere compatibile con Unix. Al suo interno c'è Darwin, un core Unix con radici che risalgono a NeXTSTEP. Quello stesso era un fork di BSD, una delle varianti originali di Unix.

POSIX garantisce che tutti questi sistemi operativi gestiscano il codice secondo le modalità previste, consentendo agli sviluppatori di sapere che il loro codice è veramente portatile. Quando inviano uno di questi segnali su un'altra macchina a un processo, i dati che ottengono sono in un formato che possono anticipare ed elaborare. Questa è una grossolana semplificazione di circa 40 anni di storia informatica, ma si ottiene l'idea generale.

Quando comunichi con i demoni più basilari che costituiscono la base Unix di macOS, questi segnali sono i migliori. I demoni sono i processi in background che gestiscono gli elementi essenziali del tuo computer, o in comune gergo macOS, servizi. Il famigerato discoveryd è un esempio Questo è stato il sostituto OS X Yosemite 10.10 per mDNSResponder, un altro servizio incolpato per i problemi di rete in quell'aggiornamento.

Immagine di credito: Dominik Rusiecki tramite Freeimages

A seconda del modo in cui un'applicazione è progettata per ricevere segnali, è possibile inviare un segnale per uscire da un'app per creare quello che viene chiamato core dump. I dump core contengono tutti i dati correnti su un programma in esecuzione. Questi sono essenziali per la risoluzione dei problemi delle app che si arrestano costantemente. Su Mac, questi dump nel formato di file Mach-O, che puoi leggere nell'ambiente di sviluppo macOS chiamato Xcode. La maggior parte degli utenti probabilmente non farà molto con questi, ma se sei frustrato da un problema con l'app, può essere utile inviarlo a uno sviluppatore per supporto.

C'è un altro piccolo calcolo classico che mostra le sue radici qui. Il formato di file Mach-O condivide il suo nome con Mach microkernel. Insieme a BSD, questo fa parte delle radici di macOS, e le due fanno parte del kernel di base, XNU. Mach non è così famoso come BSD, quindi non ha molta macchina da stampa, ma fa parte di ciò che distingue il sistema operativo Apple dalle altre varianti di Unix.

Quindi, come posso usarli?

Ci siamo già passati: ottieni un aggiornamento a un'app o scarica una nuova app Come installare e rimuovere il software Mac: 5 semplici metodi Come installare e rimuovere il software Mac: 5 semplici metodi Passa a un Mac e arriva a presa con le basi? Ti chiedi come installare il software dalla riga di comando? Hai vecchie app per Windows che devi semplicemente eseguire sul tuo computer Apple? Leggi altro, e si blocca ogni volta che lo apri. Apri Forza Esci dal menu Apple e vedere l'applicazione si presenta come Non risponde. Peggio ancora, è un processo in background che trascina il sistema verso il basso.

Aperto Monitoraggio delle attività e fai clic sul processo che non risponde. Quindi vai al vista menu e selezionare Invia il segnale al processo. Apparirà un menu e ti permetterà di scegliere quale segnale inviare al processo selezionare il tuo segnale e premere Inviare.

Se preferisci il Terminal 4 Cose fantastiche che puoi fare con Mac Terminal 4 Cose fantastiche che puoi fare con il Mac Terminal Il terminale è l'analogo di Mac OS X del prompt dei comandi di Windows, o CMD. È uno strumento, come probabilmente già sai, che ti permette di controllare il tuo computer usando i comandi di testo, al contrario ... Leggi altro, userai un comando che già conosci. Il uccidere il comando è usato per fermare un processo. Se aggiungi -S puoi aggiungere un numero per inviare un segnale al processo che stai uccidendo. Ecco un elenco del numero di elenchi di comandi comuni in uccidere pagina man:

  • 1 - HUP (riaggancia)
  • 2 - INT (interrupt)
  • 3 - ESCI (esci)
  • 6 - ABRT (interruzione)
  • 9 - KILL (uccisione non eliminabile, non ignorabile)
  • 15 - TERMINALE (segnale di terminazione software)

Ci sono altri segnali che puoi inviare, questi sono solo i più comuni. C'è un elenco completo di codici disponibili qui.

Quando li uso?

Ora che sai cosa fare con i segnali POSIX, puoi usarli per fermare i processi sospesi in modo pulito. Per essere onesti, non userai questi codici ogni giorno. Quando lavori con uno sviluppatore in caso di arresto anomalo dell'app, o quando aiuti il ​​tuo beta sysadmin a testare le app in-house della tua azienda, questi codici possono aiutarti a ottenere le informazioni di cui hanno bisogno.

Se l'app è codificata per creare questi dump, li troverai nella directory / core rendendola una directory facile da consultare quando si ottengono dati per un'applicazione bloccante o bloccata. Puoi controllare qui e vedere quali dump sono nella directory usando il ls -a comando. Questo ti mostrerà tutti i file in quella directory e potrai quindi copiarli su una directory musicale più accessibile del comando mv nomefile destinazione.

Nel terminale utilizzare il comando cd / core per passare alla directory, quindi ls -a per elencare i contenuti. Per spostare un file nella cartella Documenti è sufficiente utilizzare nome file mv / Utenti / nome utente / Documenti (sostituzione nome del file e nome utente).

Immagine di credito: Erika Varga tramite Freeimages

Se sei un utente Unix da lungo tempo che si è trasferito sul Mac, quali altre funzionalità poco conosciute sono disponibili? Se sei interessato a verificare un progetto che utilizza solo la base open source di macOS, verifica PureDarwin. Facci sapere come ha funzionato nei commenti. Ci piacerebbe anche sentire quando i segnali POSIX hanno risolto un problema ostinato con il tuo Mac.

Hai già usato i segnali POSIX per la risoluzione dei problemi?

Crediti immagine: Dean Drobot / Shutterstock

Scopri di più su: Prompt dei comandi, macOS Sierra, Terminal, Unix.