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 后不会被杀掉。

➡️

继续阅读