Wie können Sie verhindern, dass evince andere Instanzen kontaktiert?

630
Denilson Sá Maia

Okay, dieses Problem ist ohne Kontext schwer zu verstehen:

Wenn wir Evince ausführen, wird überprüft, ob eine andere Instanz ausgeführt wird.

  • Wenn es einen gibt, wird der evinceBefehl sofort beendet, nachdem der Parameter an die laufende Instanz übergeben wurde

  • Wenn keine andere Instanz ausgeführt wird, wird eine neue Instanz gestartet, und der evinceBefehl wartet, bis diese neue Instanz beendet ist.

Dieses Verhalten ist zwar ganz nett, aber für Shell-Skripte nicht hilfreich. Warum? Da ich ein Skript habe, das eine temporäre .psDatei schreibt, einen PS / PDF-Viewer aufruft und die temporäre .psDatei automatisch löscht, nachdem der Viewer beendet wurde. Leider funktioniert dieses Skript nur, wenn evince zuvor noch nicht ausgeführt wurde (wenn evince ausgeführt wurde, wird die Datei zu schnell gelöscht).

Ich möchte diesem Skript keine zusätzliche Komplexität hinzufügen. Es sollte einfach gehalten werden, weil ich evince durch xpdf, gv oder irgendetwas anderes ersetzen möchte.

Ich erwartete eine Art Befehlszeilenparameter (ähnlich wie -fvim und gvim), aber ich befürchte, dass es keine solche Option gibt. Das Schreiben eines Wrapper-Skripts ist evincemöglicherweise eine gute Lösung, aber dieses Skript sollte in allen Fällen korrekt funktionieren (wenn evince ausgeführt wurde und wenn nicht).

Irgendwelche Ideen? (Ich weiß ... dieser ist ziemlich schwierig)

2
Ich kann das nicht reproduzieren. Wenn ich laufe, evince foo.pdf; evince bar.pdf Ich bekomme zwei verschiedene Fenster und zwei verschiedene Prozesse. Peter Eisentraut vor 13 Jahren 0
Ja, ich bekomme auch zwei Fenster. Führen Sie diese Befehle auf dem Terminal aus? Sie werden feststellen, dass das erste Fenster wartet, bis alle Evince-Fenster geschlossen sind, während das zweite Fenster sofort zur Shell zurückkehrt. Denilson Sá Maia vor 13 Jahren 0
Vielleicht kann ich jetzt wiedergeben, was Sie gesagt haben, Peter Eisentraut. Anscheinend hat sich dieses Verhalten in Version 2.30 geändert Denilson Sá Maia vor 13 Jahren 0

1 Antwort auf die Frage

0
Denilson Sá Maia

Es scheint, dass frühere Evince-Versionen (bis 2.28) das Verhalten hatten, das ich in meiner Frage beschrieben habe. Glücklicherweise hat Version 2.30 dieses Verhalten in das geändert, das ich wollte.

Die Antwort lautet also: Update Evince auf 2.30 oder neuer.