Come impedire a Evince di contattare altre istanze?


2

Ok, questo problema è piuttosto difficile da capire senza contesto:

Quando corriamo manifestare , controlla se c'è un'altra istanza in esecuzione.

  • Se ce n'è uno, il evince il comando termina immediatamente, subito dopo aver passato il parametro all'istanza in esecuzione

  • Se nessun'altra istanza è in esecuzione, ne verrà avviato uno nuovo e il evince il comando attenderà fino alla chiusura di questa nuova istanza.

Mentre questo comportamento è abbastanza carino, non è utile per gli script di shell. Perché? Perché ho uno script che scrive un temporaneo .ps file, chiama un visualizzatore PS / PDF e cancella automaticamente il file temporaneo .ps file dopo l'uscita dal visualizzatore. Sfortunatamente, questo script funziona solo se Evince non era in esecuzione (se Evince era in esecuzione, il file viene eliminato troppo velocemente).

Non voglio aggiungere ulteriore complessità a questo script. Dovrebbe essere semplice, perché potrei voler sostituire evince con xpdf, gv, o qualsiasi altra cosa.

Mi aspettavo un qualche tipo di parametro da riga di comando da mostrare (simile a -f a vim e gvim), ma temo che non ci sia questa opzione. Scrivere uno script di wrapper in giro evince potrebbe essere una buona soluzione, ma questo script dovrebbe funzionare correttamente in tutti i casi (se evince era in esecuzione e se non lo era).

Qualche idea? (Lo so ... questo è abbastanza difficile)


Non posso riprodurlo. Se eseguo evince foo.pdf; evince bar.pdf Ottengo due finestre differenti e due processi diversi.
Peter Eisentraut

Sì, ho anche due finestre. Stai eseguendo questi comandi sul terminale? Noterai che il primo attenderà fino a quando tutte le finestre di Evince non si chiuderanno, mentre la seconda tornerà immediatamente alla shell.
Denilson Sá Maia

Forse ora posso riprodurre quello che hai detto, Peter Eisentraut. Sembra che questo comportamento sia cambiato nella versione 2.30
Denilson Sá Maia

Risposte:


0

Sembra che le precedenti versioni di Evince (fino a 2.28) avessero il comportamento descritto nella mia domanda. Fortunatamente, la versione 2.30 ha cambiato quel comportamento in quello che volevo.

Quindi, la risposta è: aggiornare Evince a 2.30 o più recente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.