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

I segnali POSIX sono il risultato della fondazione Unix nel cuore di macOS, ma perché sono lì e come puoi ancora usarli?

I segnali POSIX sono il risultato della fondazione Unix nel cuore di macOS, ma perché sono lì e come puoi ancora usarli?
Annuncio pubblicitario

In Activity Monitor c'è un'opzione di menu criptico per inviare il segnale da elaborare . Ti sei mai chiesto cosa fosse? Se lo selezioni, vedrai termini oscuri come SIGINT e SIGHUP, che non chiariscono 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 distro Linux, ma anche contro la concorrenza. Leggi di più nel cuore di macOS. Il terminale ha alcuni di questi segnali integrati: quando premi Ctrl + C per interrompere un comando in esecuzione, stai inviando il processo SIGINT per interrompere e interrompere il comando attualmente in esecuzione. Sono stati uno dei primi modi in cui le app potevano comunicare tra loro e fanno parte dei vecchi standard "Portable Operating System Interface" (POSIX).

Benché sia ​​utile comprendere le basi del funzionamento del tuo sistema, puoi anche utilizzare questi segnali per acquisire informazioni sulle applicazioni che presentano comportamenti anomali.

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 era il sostituto OS X Yosemite 10.10 per mDNSResponder, un altro servizio incolpato per i problemi di rete in quell'aggiornamento .

Riga di comando
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 il 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 molto spazio per la 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 vedi che l'Applicazione si presenta come Non Rispondente . Peggio ancora, è un processo in background che trascina il sistema verso il basso.

Monitoraggio delle attività

Aprire Activity Monitor e fare clic sul processo che non risponde. Quindi vai al menu Visualizza e seleziona Invia segnale da elaborare . Apparirà un menu e ti permetterà di scegliere quale segnale inviare al processo selezionare il tuo segnale e premere Invia .

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 comando kill è 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 nella pagina man di kill :

  • 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 dell'appartamento o 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 /cores rendendola una directory facile da consultare quando ricevi i dati per un'applicazione bloccante o bloccata. Puoi controllare qui e vedere quali dump sono nella directory usando il comando ls -a . Questo ti mostrerà tutti i file in quella directory e potrai quindi copiarli su una directory musicale più accessibile con il comando mv filename destination .

In Terminale usa il command cd /cores per passare alla directory, quindi ls -a per elencare il contenuto. Per spostare un file nella tua cartella Documenti usa semplicemente mv filename /Users/username/Documents (sostituendo nomefile e nome utente ).

mackeyboard
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

In this article