QProcess de erro: destruído enquanto o processo ainda está em execução

1

Editar: Descobri que o problema não está relacionado com o script citado abaixo, mas deixarei apenas para o histórico.

Bem, esse erro aparece quando eu fecho o texstudio com o visualizador aberto (xdvi ou evince). Se eu fechar o visualizador primeiro e depois fechar o texstudio, não há problema, não há erros no terminal.

Este é o erro:

QProcess: Destroyed while process is still running.

Texto antigo: Sempre que fecho o meu texto depois de aberto pelo meu script abaixo, recebo este erro no terminal:

QProcess: Destroyed while process is still running.

Aqui está o script fastex.sh

#!/bin/sh

# Copyleft 2012 by Sigur

caminho=/home/$USER
file=$caminho/fastex-temp
exec 3>&1
exec > "$file".tex
printf '\documentclass[11pt,a4paper]{amsart}\n' 
printf '\usepackage{amsfonts,amsthm,amsmath,amssymb}\n' 
printf '\usepackage[latin1]{inputenc}\n' 
printf '\usepackage[T1]{fontenc}\n' 
printf '\usepackage{tikz}\n'
printf '\usepackage[brazil]{babel}\n'
printf '\n' 
printf '\begin{document}\n' 
printf '\n'
printf '\end{document}' 

linha=$(wc -l < "$file".tex)
texstudio --line $linha  "$file".tex
find . -name  "fastex-temp.*" | grep -vP '.tex$|.pdf$' | while read -r i; do rm $i; done

Eu acho que o problema é com o comando find para excluir arquivos auxiliares. Então, é find executado somente depois que eu fecho o texstudio?

Obrigado por um tempo. Muitas felicidades.

Editar

    
por Sigur 07.09.2012 / 02:02

1 resposta

2

Eu tentei o seu script, com a versão mais recente (2.4), não houve problema,

Se você esquecer de encerrar o QProcess antes de fechar a janela principal do seu programa, você geralmente recebe esse aviso, acho que o autor corrigiu esse problema:

QProcess: Destroyed while process is still running.

O texstudio não libera o pesudo tty quando é iniciado, portanto, a exclusão de arquivos só é iniciada depois que o texstudio é encerrado.

E para remover arquivos, eles podem ser salvos em uma linha:

find . -name "fastex-temp.*[^(tex|pdf)]" -exec rm {} \;

EDITAR

Para testar se o comando acima funciona bem, copie e execute o seguinte script:

DIR=$(mktemp -d) 
cd ${DIR}
touch fastex-temp.{aa,tex,pdf,bb}
find . -name "fastex-temp.*[^(tex|pdf)]" -exec rm {} \;

Agora execute o comando acima e você verá apenas * .tex e * .pdf sendo deixados aqui.

    
por 07.09.2012 / 02:16