TIL: 给 dired 异步命令加 nohup,让外部程序活过 Emacs 退出
💡
原文中文,约800字,阅读约需2分钟。
📝
内容提要
在 Emacs 的 dired 中使用异步命令播放视频时,关闭 Emacs 会导致视频停止。可以通过为 dired-do-async-shell-command 添加 nohup,使子进程在 Emacs 退出后继续运行,从而避免关闭程序如 mpv、firefox 和 gimp。
🎯
关键要点
-
在 dired 中使用 mpv 播放视频时,关闭 Emacs 会导致视频停止。
-
dired-do-async-shell-command 进程并没有真正独立于 Emacs,Emacs 退出时会杀掉子进程。
-
可以通过为 dired-do-async-shell-command 添加 nohup 来解决这个问题。
-
使用 advice-add 给 dired-do-async-shell-command 包装,自动在命令前加 nohup。
-
这样从 dired 启动的 mpv、firefox、gimp 等程序在关闭 Emacs 后不会被杀掉。
➡️