Opened 16 months ago
Last modified 3 months ago
#72583 assigned defect
emacs-app @30.1_1+nativecomp+rsvg+treesitter launches multiple bash processes that do not terminate
| Reported by: | william-r-greene (William R. (Bill) Greene) | Owned by: | drkp (Dan Ports) |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.10.7 |
| Keywords: | sequoia | Cc: | |
| Port: | emacs-app |
Description
Shell or process commands interspersed with setenv calls results in Emacs starting hundreds of bash processes (I stopped counting at 532.) that do not terminate.
Attachments (4)
Change History (7)
Changed 16 months ago by william-r-greene (William R. (Bill) Greene)
| Attachment: | emacs-frame-before-quit.png added |
|---|
Changed 16 months ago by william-r-greene (William R. (Bill) Greene)
| Attachment: | activity-monitor-showing-many-bash-processes.png added |
|---|
Activity Monitor window showing a few of the bash processes started by Emacs
Changed 16 months ago by william-r-greene (William R. (Bill) Greene)
| Attachment: | minimal-example.el added |
|---|
Minimal example of elisp code demonstrating problem
Changed 16 months ago by william-r-greene (William R. (Bill) Greene)
| Attachment: | emacs-frame-after-quit.png added |
|---|
Emacs frame after hitting C-g twice
comment:1 Changed 15 months ago by jmroot (Joshua Root)
| Owner: | set to drkp |
|---|---|
| Port: | @30.1_1+nativecomp+rsvg+treesitter removed |
| Status: | new → assigned |
comment:2 Changed 3 months ago by drkp (Dan Ports)
I couldn't reproduce this.
Any chance your bashrc is launching background processes? If so, they'll inherit the shell's stdout fd, and emacs will block waiting for that to finish before considering the shell command done.
comment:3 Changed 3 months ago by william-r-greene (William R. (Bill) Greene)
It looks like that was indeed happening. Here is the fragment from my .bashrc:
# Try to determine what shell is running:
if [ -n "$($SHELL -c 'echo $ZSH_VERSION')" ]; then
export WHICH_SHELL="${SHELL} version ${ZSH_VERSION}";
elif [ -n "$($SHELL -c 'echo $BASH_VERSION')" ]; then
export WHICH_SHELL="${SHELL} version ${BASH_VERSION}";
else
export WHICH_SHELL=not_zsh_or_bash;
fi;
Thanks.
-- Bill
Note: See
TracTickets for help on using
tickets.

Emacs frame before hitting C-g twice