J'utilise browse-url
/ browse-url-firefox
pour ouvrir des liens dans Firefox depuis Emacs 24.5.1 sous Linux (Fedora 23) qui exécute essentiellement l' firefox
exécutable avec l'URL par start-process
. S'il existe déjà une instance de Firefox en cours d'exécution, cela entraînera à son tour l'URL à ouvrir dans un nouvel onglet et mettra fin à l' firefox
exécutable généré à partir d'Emacs, mais sinon une nouvelle instance de Firefox s'exécutera en tant qu'enfant de processus d'Emacs (à des fins de test , cela équivaut à M-! sleep 1h & RET
).
Si je veux ensuite quitter Emacs, il me demande "Des processus actifs existent, les tuer et quitter quand même?" avec l'option de tuer l'instance de Firefox ou bien de laisser Emacs en cours d'exécution. Au lieu de cela, je voudrais «détacher» le firefox
processus du parent Emacs afin de pouvoir quitter Emacs tout en gardant l'instance de Firefox en cours d'exécution.
Est-il possible de générer des processus à partir d'Emacs qui "survivent" à la sortie d'Emacs, ou tous les processus générés doivent-ils mourir à la sortie d'Emacs?
start-process
(comme une visionneuse PDF) et Emacs pense que son travail est terminé.Réponses:
voici la solution, court-circuitant la réponse de @ abo-abo.
Notez que cette condition est nécessaire, car Mac n'a pas setsid.
la source
Voici une commande qui fait ce que vous voulez:
L'essentiel ici est d'utiliser
nohup
.Voir la source ici .
la source
nohup
est une bonne solution. Malheureusement, je trouve votre réponse trop "distrayante" pour quelqu'un qui cherche simplement comment atteindre l'objectif. Pourriez-vous s'il vous plaît réduire la source à quelque chose comme(shell-command "nohup sleep 1h &")
et ajouter une note explicite que "détacher" d'un processus existant n'est pas possible afin que je puisse accepter la réponse?