Soweit ich weiß, ist der einzige Grund, warum Sie eine kaputte Pipe mit Hintergrundprozess erhalten würden, wenn Sie das Terminalfenster schließen, mit dem es gestartet wurde. Obwohl es sich im Hintergrund befindet, ist es immer noch über Pipes an stdin und stdout mit Ihrem Terminal verbunden. Wenn Sie das Terminal schließen, abmelden oder das Terminal verlassen, werden die Pipes des Prozesses unterbrochen, und der Prozess erhält ein Signal zum Beenden (SIGHUP, glaube ich).
Die Lösung dafür wäre wahrscheinlich zu verwenden nohup
. nohup leitet stdin, stdout und stderr des neuen Hintergrundprozesses an Dateien um und verhindert, dass der Prozess SIGHUP gesendet wird.
Um es zu verwenden, können Sie es ausführen nohup emacsclient somefile.txt &
oder wenn Sie die Dateien nohup.out und nohup.err, die zum Erfassen von stdout und stderr verwendet werden, vermeiden möchten, können Sie die Ausgabe vollständig mit löschen nohup emacsclient somefile.txt &> /dev/null &
.
Da das Eingeben nur zum Bearbeiten einer Datei schwierig wird, möchten Sie dies wahrscheinlich in einem Alias- oder Shell-Skript verankern.