Estou executando trabalhos Matlab de muitos dias no Windows 10. Em duas ocasiões sucessivas, quando o trabalho foi executado por cerca de um dia, descobri que o processo Matlab e meus processos Cygwin Xterm e Gvim desapareceram. Firefox e Outlook 2013 ainda estão em execução.
Eu olho para o arquivo de log do Matlab (ou seja, seu "diário") e encontrei uma saída típica, de repente terminando no meio de uma linha de texto, indicando uma interrupção altamente anormal. A brusquidão da interrupção é reforçada pelo fato de que meu código Matlab cria um objeto "onCleanup" que libera a saída em buffer para o diário quando ele é destruído, e fica claro que o objeto nem teve a chance de ser destruído.
Como o Cygwin X-Windows também não está mais em execução, o problema não parece ser específico do Matlab. Os processos Cygwin não estão relacionados ao processo Matlab, ou seja, Matlab não é um processo X-windows e não foi iniciado a partir do Bash.
Como posso começar a rastrear o que causou essas rescisões?
A arma fumegante: uma atualização e reinicialização do Windows
De acordo com o comentário de user1686 , executei o Visualizador de Eventos. O contêiner de nível superior é "Visualizador de eventos (local). Nele há um contêiner "Logs do Windows", que contém os contêineres "Aplicativo" e "Sistema". Nada suspeito em "Aplicativo", mas o contêiner "Sistema" continha o seguinte evento incriminador :
Level: Information
Date and Time: 2022-04-16 12:25:01 AM
Source: User32
Event ID: 1074
Task Category: None
Na dor de visualização, a guia "Geral" continha:
The process C:\WINDOWS\system32\svchost.exe (*computer name*) has initiated the restart of computer *computer name* on behalf of user NT AUTHORITY\SYSTEM for the following reason: Operating System: Service pack (Planned)
Log Name: System
Source: User32
Event ID: 1074
Level: Information
User: SYSTEM
OpCode: Info
More Information: Event Log Online Help (this is a hyperlink)
Logged: 2022-04-16 12:25:01 AM
Task Category: None
Keywords: Classic
Computer: *Computer name*
A arma fumegante é o carimbo de hora de 12:25:01 AM. Isso coincide com o carimbo de hora de um arquivo que o Matlab atualiza a cada 30 segundos ou mais. Especificamente, ls -l
mostra o carimbo de hora Apr 16 00:25
(não posso brincar ls
para obter uma hora mais precisa porque reiniciei o trabalho do Matlab, o que derrubou o arquivo).
É impossível para mim expressar completamente como estou chocado que o comportamento padrão é uma reinicialização sem confirmação do usuário. Meu próximo passo é evitar isso. Qualquer pista será bem vinda. Eu considerei iniciar uma nova pergunta, mas isso ainda parece se enquadrar no título desta pergunta. Obrigado.
PS Acho bizarro que o Firefox e o Outlook ainda estejam em execução. Talvez o Windows tente bloquear todos os processos em preparação para reiniciar, mas não consegue bloquear o Firefox e o Outlook.
Uma reinicialização do SO necessariamente mata todos os processos, sem exceção - mas o que realmente acontece é que o Firefox e o Outlook se registram para serem reiniciados automaticamente após a reinicialização do Windows (semelhante ao mecanismo XSMP "session save" visto anteriormente em ambientes Linux X11), enquanto outros aplicativos não fazem isso.