Mögliche Gründe, warum meld nicht auf /dev/fd/* zugreifen kann, wenn es als nicht privilegierter Benutzer ausgeführt wird?

Mögliche Gründe, warum meld nicht auf /dev/fd/* zugreifen kann, wenn es als nicht privilegierter Benutzer ausgeführt wird?

Ich vermutete, dass Meld sie auch beschreibbar machen musste. Es steht jedoch Could not read file(beachten Sie „read“); außerdem würde das bedeuten, dass sie für Root beschreibbar sind, weil es für Root keinen solchen Fehler gab.

~$ diff <(echo foo) <(echo bar)
1c1
< foo
---
> bar

~$ meld <(echo foo) <(echo bar)  # not working, see comment below
~$ sudo -s
~# meld <(echo foo) <(echo bar)  # works just fine

Der erste gibt zurück Could not read fileund [Errno 2] No such file or directory: '/dev/fd/63'.

Was vermuten Sie, ist der Grund für dieses Verhalten?

Bildschirmfoto

Oben nicht privilegierter Benutzer, unten Root.

Screenshot, root

Antwort1

Dies passiert, wenn bereits ein Meld-Fenster geöffnet ist. In diesem Fall meldversucht die erneute Ausführung, den vorhandenen Meld-Prozess zu verwenden. Dieser Prozess kann jedoch nicht auf die /dev/fdDateien zugreifen, die für die Ersetzung verwendet werden.

Es scheint keine Möglichkeit zu geben, Meld zu zwingen, den „neuen“ Prozess zu verwenden und alle anderen zu ignorieren.

verwandte Informationen