Utilizo browse-url
/ browse-url-firefox
para abrir enlaces en Firefox desde Emacs 24.5.1 en Linux (Fedora 23) que, en esencia, ejecuta el firefox
ejecutable con la URL start-process
. Si ya se está ejecutando una instancia de Firefox, esto a su vez hará que la URL se abra en una nueva pestaña y termine el firefox
ejecutable generado desde Emacs, pero de lo contrario se ejecutará una nueva instancia de Firefox como un proceso hijo de Emacs (para fines de prueba , esto es equivalente a M-! sleep 1h & RET
).
Si luego quiero salir de Emacs, me pregunta "¿Existen procesos activos; matarlos y salir de todos modos?" con la opción de eliminar la instancia de Firefox o, bueno, dejar Emacs ejecutándose En su lugar, me gustaría "separar" el firefox
proceso del padre Emacs para poder salir de Emacs mientras mantengo la instancia de Firefox en ejecución.
¿Es posible generar procesos de Emacs que "sobrevivan" al salir de Emacs, o todos los procesos generados deben morir cuando Emacs sale?
start-process
(como un visor de pdf) y Emacs cree que su trabajo ha terminado.Respuestas:
Aquí está la solución, acortando la respuesta de @ abo-abo.
Tenga en cuenta que la condición es necesaria, porque Mac no tiene setsid.
fuente
Aquí hay un comando que hace lo que quieres:
La clave aquí es usar
nohup
.Ver la fuente aquí .
fuente
nohup
Es una buena solución. Desafortunadamente, encuentro su respuesta demasiado "distractora" para alguien que solo está buscando cómo lograr el objetivo. ¿Podría reducir la fuente a algo así(shell-command "nohup sleep 1h &")
y agregar una nota explícita de que "separar" de un proceso existente no es posible para que pueda aceptar la respuesta?