Em que circunstâncias é que o processo System (PID 4) manter um identificador de arquivo aberto?

StackOverflow https://stackoverflow.com/questions/1293398

  •  18-09-2019
  •  | 
  •  

Pergunta

Meu aplicativo em execução em um servidor Windows faz uso de um banco de dados Jet / Access. Por algumas razões ao redor a cada duas semanas o arquivo de banco de dados fica bloqueado pelo processo System (PID 4, parece estar fixo)

Depois de algum googling eu encontrei alguns outros usuários ter seus arquivos bloqueado por esse processo especial, mas diferentes arquivos (é claro).

  • O que é a razão geral para o processo do sistema para manter um identificador de arquivo aberto?
  • É a minha candidatura a causa para esta situação de bloqueio?
  • Você todas as alças implicitamente aberta pelo processo de Sistema? Eu poderia imaginar que depois de um processo caiu, o cabo pode ainda ser aberto e o processo Sistema de alguma forma leva owernship dessa alça.
  • Posso fazer alguma coisa na minha aplicação para impedir que isso aconteça?
Foi útil?

Solução

Esta me parece uma questão de nível de driver com uma alça de fuga.

Se você estiver executando um anti-vírus pacote tentativa atualização, desabilitar (temporariamente!) Ou mudar para uma marca diferente.

Outras dicas

Os arquivos acessados ??através de uma ação será bloqueado pelo processo do sistema (PID 4).

Tente compmgmt.msc abertura -> Ferramentas de Sistema -> pastas compartilhadas -> Abrir arquivos para ver se o arquivo bloqueado está listado lá

Veja também fórum sysinternals uma maneira para replicar isso.
Nem todos os aplicativos bloquear arquivos quando são abertos, Excel no entanto faz. Eu não sei se o Access faz o mesmo ...

Aqui está outra causa possível que eu encontrei:

Há um bug no Windows 7 e provável em 2008 (possivelmente de 64 bits apenas versões) Windows Server. Vem à tona quando você desativar serviço experiência de aplicação e provoca os mesmos problemas como descrito na questão.

Re-permitindo que este serviço tem corrigido este problema para mim.

Um pouco mais info aqui a respeito de porque ele está causando um problema.

Lista de outros SO perguntas que parecem estar relacionados:

Pode ser uma sessão prolongada de um computador remoto para uma pasta compartilhada. Se for esse o caso, pode ser desbloqueado a partir da linha de comando:

net session /delete

O seu servidor configurado para executar backups de arquivos periódicos?

Se assim for, é o backup em execução como Sistema, talvez levando o arquivo bloqueado quando você começa um conflito?

Para mim, era "Windows Defender" (anti-vírus). I excluídos minhas pastas de compilação do Visual Studio da lista de pastas verifica do Windows Defender, eo problema foi embora. (Visual Studio não foi capaz de construir para o arquivo EXE, PID 4 foi bloqueando-a para verificar se há virii)

Para mim, eu tive que bater com uma marreta. Chkdsk / f na unidade em que a pasta foi localizado fixa-lo. Use com cautela.

Verifique as configurações de segurança para cada pasta e subpastas. Certifique-se de que o sistema não apenas criar automaticamente uma configuração de permissões especiais que não permitirá que qualquer pessoa para excluir o arquivo. Aparentemente, por algum motivo estranho o OS cria uma estranha configuração de permissão especial que protege o arquivo seja excluído.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top