Solucionar problemas de aplicativos Mac à moda antiga com sinais POSIX

Os sinais POSIX são um resultado da fundação Unix no coração do macOS, mas por que eles estão lá e como você ainda pode usá-los?

Os sinais POSIX são um resultado da fundação Unix no coração do macOS, mas por que eles estão lá e como você ainda pode usá-los?
Propaganda

No Activity Monitor, há uma opção de menu enigmática para Enviar Sinal ao Processo . Você já se perguntou o que era? Se você selecioná-lo, verá termos obscuros, como SIGINT e SIGHUP, que não esclarecem exatamente as coisas. Então, quais são exatamente esses sinais?

Esses sinais são um resultado da fundação Unix Mac OS X Yosemite, do ponto de vista de um usuário Linux Mac OS X Yosemite, da perspectiva de um usuário Linux O Mac OS X é usado como o exemplo para uma interface limpa e elegante. Como escritor de Linux, é meu dever fazer comparações entre distros do Linux, mas também contra a concorrência. Leia mais no coração do macOS. O terminal tem alguns desses sinais embutidos: quando você aperta Ctrl + C para parar um comando em execução, você está enviando o processo SIGINT para interromper e parar o comando atualmente em execução. Eles foram uma das primeiras maneiras de os aplicativos se comunicarem entre si e fazem parte dos antigos padrões “POSIX (Portable Operating System Interface)”.

Embora seja bom entender os fundamentos de como o sistema funciona, você também pode usar esses sinais para capturar informações sobre aplicativos que não funcionam corretamente.

O que é o POSIX?

POSIX é o padrão básico para sistemas operacionais Unix e Unix-Like. Entre esses sistemas compatíveis está o macOS, que foi feito para ser compatível com Unix. Em seu núcleo está o Darwin, um núcleo Unix com raízes que remontam ao NeXTSTEP. Isso em si era um fork do BSD, uma das variantes originais do Unix.

O POSIX garante que todos esses sistemas operacionais lidem com o código da maneira esperada, permitindo que os desenvolvedores saibam que seu código é verdadeiramente portátil. Quando enviam um desses sinais em outra máquina para um processo, os dados que recebem estão em um formato que podem ser antecipados e processados. Esta é uma simplificação grosseira de cerca de 40 anos de história da computação, mas você tem a idéia geral.

Ao se comunicar com os daemons mais básicos que compõem a base do Unix do macOS, esses sinais são os melhores. Os daemons são os processos em segundo plano que executam o essencial do seu computador - ou, em linguagem comum, macOS, serviços. O infame discoveryd é um exemplo. Este foi o substituto do OS X Yosemite 10.10 para mDNSResponder, outro serviço responsabilizado pelos problemas de rede nessa atualização.

Linha de comando
Crédito de imagem: Dominik Rusiecki via Freeimages

Dependendo da maneira como um aplicativo é projetado para receber sinais, você pode enviar um sinal para sair de um aplicativo para criar o que é chamado de dump principal. Os dumps principais contêm todos os dados atuais sobre um programa em execução. Estes são essenciais para a solução de problemas de aplicativos que traem constantemente. No Mac, eles são despejados no formato de arquivo Mach-O, que você pode ler no ambiente de desenvolvimento do macOS chamado Xcode. A maioria dos usuários provavelmente não fará muito com isso, mas se você estiver frustrado com um problema de aplicativo, pode ser útil enviá-lo a um desenvolvedor para obter suporte.

Há outro pouco de computação clássica mostrando suas raízes aqui. O formato de arquivo Mach-O compartilha seu nome com o microkernel Mach. Junto com o BSD, isso faz parte das raízes do macOS, e os dois fazem parte do kernel de base, o XNU. Mach não é tão célebre quanto o BSD, por isso não recebe muito da impressora, mas faz parte do que diferencia o sistema operacional da Apple de outras variantes do Unix.

Então, como posso usá-los?

Todos já estivemos lá antes: você recebe uma atualização de um aplicativo ou faz o download de um novo aplicativo Como instalar e remover software do Mac: 5 Métodos fáceis Como instalar e remover software do Mac: 5 métodos fáceis Alternar para um Mac e acessar agarra com o básico? Quer saber como instalar o software a partir da linha de comando? Tem aplicativos antigos do Windows que você simplesmente precisa executar no seu computador Apple? Leia mais, e ele trava toda vez que você abri-lo. Você abre o Force Quit no menu Apple e vê que o aplicativo está aparecendo como não respondendo . Pior ainda, é um processo de segundo plano arrastando seu sistema para baixo.

Monitor de atividade

Abra o Activity Monitor e clique no processo que não está respondendo. Em seguida, vá para o menu Visualizar e selecione Enviar sinal para processar . Um menu irá aparecer e permitir que você escolha qual sinal enviar ao processo selecione seu sinal e pressione Enviar .

Se você preferir o Terminal 4, coisas legais que você pode fazer com o Mac 4, coisas legais que você pode fazer com o Mac Terminal O Terminal é o análogo do Mac OS X do prompt de comando do Windows, ou CMD. É uma ferramenta, como você provavelmente já sabe, que permite controlar o seu computador usando comandos de texto, ao contrário ... Leia Mais, você usará um comando que já está familiarizado. O comando kill é usado para parar um processo. Se você adicionar -s poderá adicionar um número para enviar um sinal ao processo que está matando. Aqui está uma lista do número de lista de comandos comuns na página do kill man:

  • 1 - HUP (desligar)
  • 2 - INT (interromper)
  • 3 - SAIR (sair)
  • 6 - ABRT (abortar)
  • 9 - KILL (matança não alcançável, não ignorável)
  • 15 - TERM (sinal de terminação de software)

Existem alguns outros sinais que você pode enviar também, estes são apenas os mais comuns. Existe uma lista abrangente de códigos disponíveis aqui.

Quando os uso?

Agora que você sabe o que fazer com os sinais POSIX, você pode usá-los para interromper os processos pendentes de forma limpa. Para ser justo, você não vai usar esses códigos todos os dias. Ao trabalhar com um desenvolvedor em um aplicativo estranho ou ao ajudar seu beta sysadmin a testar os aplicativos internos da sua empresa, esses códigos podem ajudar a obter as informações de que precisam.

Se o aplicativo for codificado para criar esses dumps, você os encontrará no diretório /cores tornando-o um diretório fácil de se observar ao obter dados para um aplicativo travado ou travado. Você pode verificar aqui e ver quais dumps estão no diretório usando o comando ls -a . Isto irá mostrar-lhe todos os arquivos nesse diretório, então você pode copiá-los para um diretório mais acessível music o comando mv filename destination .

No Terminal, use o command cd /cores para alternar para o diretório e, em seguida, ls -a para listar o conteúdo. Para mover um arquivo para sua pasta Documentos, simplesmente use mv filename /Users/username/Documents (substituindo nome de arquivo e nome de usuário ).

mackeyboard
Crédito de imagem: Erika Varga via Freeimages

Se você é um usuário Unix de longa data que se mudou para o Mac, que outros recursos pouco conhecidos estão por aí? Se você estiver interessado em conferir um projeto que use apenas a base de código aberto do macOS, confira o PureDarwin. Deixe-nos saber como isso funcionou nos comentários. Também gostaríamos de saber quando os sinais POSIX solucionaram um problema teimoso no seu Mac.

Você usou sinais POSIX para solucionar problemas antes?

Créditos da Imagem: Dean Drobot / Shutterstock

In this article