我正在配置 xmonad。我将终端更改为terminal="urxvt"
但我不喜欢它在我打开的每个终端上生成三个进程:
~$ ps -fea --forest
fake 16042 12136 0 11:22 ? 00:00:00 \_ /bin/sh -c urxvt
fake 16043 16042 0 11:22 ? 00:00:00 | \_ urxvt
fake 16044 16043 0 11:22 pts/2 00:00:00 | \_ bash
我该如何修复?我可以删除该/bin/sh -c urxvt
进程吗?
答案1
XMonad 内部使用spawn
在 XMonad.Core 中:
spawn :: MonadIO m => String -> m ()
spawn。启动外部应用程序。具体来说,它会双重分叉并运行您作为命令传递给的字符串
/bin/sh
。
因此,如果只想更改terminal
值,而不是executeFile
直接使用 say,则必须exec
在 shell 命令中使用,terminal="exec urxvt"
这将/bin/sh
通过使exec
命令而不是 shell 作为进程的父级来删除多余的内容。