Forçando o compton para liberar o diretório

2

Muitas vezes tenho problemas para desmontar sistemas de arquivos porque compton está mantendo um subdiretório aberto.

Aqui está uma linha de lsof que tenho agora:

compton   30043            valmi  cwd       DIR              254,0    32768       7485 /media/truecrypt1/videos

Eu não posso para a vida de mim descobrir o que está fazendo com este diretório (ele não é usado por nenhum outro processo nem nunca foi aberto em qualquer aplicativo além de bash).

Até agora, eu sempre acabei reiniciando o X quando isso aconteceu, mas eu adoraria que alguém me dissesse como fazer o compton entender que deveria deixar meu diretório, ou como um consolo, me dizer o que é fazendo com isso.

Se isto for relevante, este é o compton-git 20121102-2 do Debian estável, com o 3.5.0-7 e tudo atualizado.

    
por scozy 31.03.2014 / 20:20

1 resposta

4

A quarta coluna da saída de lsof informa que esse diretório é o diretório de trabalho atual (cwd) do processo. Provavelmente compton foi iniciado neste diretório. Muito provavelmente você pode matar o processo e reiniciá-lo em outro diretório (por exemplo, / ).

Você pode tentar forçá-lo a sair do diretório com este hack:

  1. Anexe um GDB ao processo emitindo

     $ gdb -p <pid>
    

    onde <pid> seria o PID do processo,

  2. Dentro de gdb issue

    > p chdir("/")
    > detach
    > quit
    

$ e > são os prompts do respectivo programa.

Observação: No caso de o compton ter uma razão específica para estar nesse diretório, isso pode causar falhas no processo de uma forma horrível. Não encontrei nenhuma chamada no código-fonte de compton que sugira que esteja lá de propósito, mas esteja avisado. Por outro lado ... isso também resolveria seu problema. ;)

    
por 31.03.2014 / 20:32