Ich verwende browse-url
/ browse-url-firefox
, um Links in Firefox in Emacs 24.5.1 unter Linux (Fedora 23) zu öffnen, das im Wesentlichen die firefox
ausführbare Datei mit der URL von ausführt start-process
. Wenn bereits eine Firefox-Instanz ausgeführt wird, wird die URL in einem neuen Tab geöffnet und die firefox
von Emacs erzeugte ausführbare Datei beendet. Andernfalls wird eine neue Firefox-Instanz als untergeordnetes Prozesselement von Emacs ausgeführt (zu Testzwecken) , das entspricht M-! sleep 1h & RET
).
Wenn ich dann Emacs beenden möchte, werde ich gefragt, ob aktive Prozesse vorhanden sind. Beenden Sie sie und beenden Sie sie trotzdem. mit der Option, entweder die Firefox-Instanz zu beenden oder Emacs laufen zu lassen. Stattdessen möchte ich den firefox
Prozess vom übergeordneten Emacs-System "trennen", damit ich Emacs beenden kann, während die Firefox-Instanz ausgeführt wird.
Ist es möglich, Prozesse aus Emacs zu erzeugen, die das Verlassen von Emacs "überleben", oder müssen alle erzeugten Prozesse sterben, wenn Emacs beendet wird?
start-process
(wie einem PDF-Viewer) öffnen und Emacs glaubt, dass der Job beendet ist.Antworten:
Hier ist eine Lösung, die die Antwort von @ abo-abo kurzschließt.
Beachten Sie, dass eine Bedingung erforderlich ist, da der Mac keine Setsid hat.
quelle
Hier ist ein Befehl, der macht, was Sie wollen:
Der Schlüssel hier ist zu verwenden
nohup
.Siehe die Quelle hier .
quelle
nohup
ist eine schöne Lösung. Leider finde ich Ihre Antwort zu "ablenkend" für jemanden, der nur danach sucht, wie er das Ziel erreichen kann. Könnten Sie bitte die Quelle auf etwas reduzieren(shell-command "nohup sleep 1h &")
und einen expliziten Hinweis hinzufügen, dass ein "Trennen" von einem vorhandenen Prozess nicht möglich ist, damit ich die Antwort akzeptieren kann?