Parece que versões anteriores do Evince (até 2.28) tiveram o comportamento que descrevi na minha pergunta. Felizmente, a versão 2.30 mudou esse comportamento para o que eu queria.
Então, a resposta é: atualize o Evince para 2.30 ou mais recente.
Ok, esse problema é meio difícil de entender sem contexto:
Quando corremos Evince , ele verifica se há outra instância em execução.
Se houver um, o comando evince
será encerrado imediatamente após passar o parâmetro para a instância em execução
Se nenhuma outra instância estiver em execução, uma nova será iniciada e o comando evince
aguardará até que essa nova instância saia.
Embora esse comportamento seja muito bom, não é útil para scripts de shell. Por quê? Como tenho um script que grava um arquivo .ps
temporário, chama um visualizador PS / PDF e exclui automaticamente o arquivo .ps
temporário após a saída do visualizador. Infelizmente, esse script só funciona se o evince não estava em execução anteriormente (se o evince estava em execução, o arquivo é excluído muito rápido).
Eu não quero adicionar complexidade extra a este script. Deve ser mantido simples, porque eu posso querer substituir o evince por xpdf, gv ou qualquer outra coisa.
Eu esperava algum tipo de parâmetro de linha de comando (semelhante a -f
para vim e gvim), mas temo que não exista tal opção. Escrever um script wrapper em torno de evince
pode ser uma boa solução, mas esse script deve funcionar corretamente em todos os casos (se o evidince estivesse em execução e se não estivesse).
Alguma ideia? (Eu sei ... esse é bem difícil)
Parece que versões anteriores do Evince (até 2.28) tiveram o comportamento que descrevi na minha pergunta. Felizmente, a versão 2.30 mudou esse comportamento para o que eu queria.
Então, a resposta é: atualize o Evince para 2.30 ou mais recente.