Bash에 의해 Dmenu 프로세스가 분기되었습니까?

Bash에 의해 Dmenu 프로세스가 분기되었습니까?

나는 출력을 보고 있었고 내가 사용하기 시작한 pstree프로세스가 .dmenubash

그 이유는 무엇입니까? 다른 응용 프로그램 실행 프로그램 dmenu처럼 작동 gmrun하고 실행 프로세스만 작동하도록 할 수 있는 방법이 있습니까 ?


편집하다:맨페이지에는 dmenu셸 실행 동작이 에 대한 것으로 나와 있습니다 dmenu_run. 프로그램을 시작한 후에도 셸을 유지하지 않는 방법을 찾고 있습니다.

답변1

당신이 보고 있는 것이 무엇인지 추측합니다 dmenu_run. 응용 프로그램 목록은 쉘을 사용하여 채워지고 무엇을 실행할지 결정하기 위해 다시 전달됩니다. dmenu는 아무것도 시작하지 않고 단지 선택 항목을 듣고 있는 항목으로 다시 전달한 다음 작동합니다. 쉘은 무거운 작업을 수행하므로 쉘이 필요한 것입니다.

답변2

dmenu프로세스를 시작하지 않고 선택한 항목을 표준 출력으로 인쇄합니다. 선택한 프로그램의 실제 실행은 다른 것(아마도 창 관리자)에 따라 달라집니다.

dmenu다른 사람의 추가 지원이 필요한 이유 에 대해 더 많은 정보를 제공해야 합니다 .

답변3

얼마 후 나는 ArchLinux 포럼에 이런 질문을 올리게 되었습니다.

다음과 같아야 합니다 /usr/bin/dmenu_run.

#!/bin/sh
cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"}
if [ -d "$cachedir" ]; then
    cache=$cachedir/dmenu_run
else
    cache=$HOME/.dmenu_cache # if no xdg dir, fall back to dotfile in ~
fi
exec $(
    IFS=:
    if stest -dqr -n "$cache" $PATH; then
        stest -flx $PATH | sort -u | tee "$cache" | dmenu "$@"
    else
        dmenu "$@" < "$cache"
    fi
)

관련 정보