sh and sigtstp problem.

dbj.rice at rand-relay dbj.rice at rand-relay
Wed Aug 3 07:38:17 AEST 1983


From:  Dave Johnson <dbj.rice at rand-relay>

	From: JPAYNE at BBNG

	... I tried Pausing emacs under /bin/sh and emacs simply
	returned immediately and repainted the screen. ... Perhaps
	the kernel refuses to send signals greater than 16, when the
	new mechanism hasn't been used, so that old programs don't break.

	From: chris at umcp-cs

	... I took a look into the kernel code and came up with ...
	nothing ... There may be something special in psignal ...

The reason this happens is simple:  SIGTSTP is ignored by login, which is
inherited by the /bin/sh, and is then inherited by the Emacs.  When emacs
decides that you're trying to do a pause-emacs, it sends itself a SIGTSTP.
Since this is ignored in the case that you're running the Emacs from /bin/sh
(without a csh behind it), the signal does nothing.  When emacs wakes back
up from the pause (which in this case is immediate since the pause was
ignored), it redraws the screen.  The reason this behaves differently when
you login to csh instead of sh is that the C-shell sets the action for
SIGTSTP back to SIG_DFL when it starts up.

                                        Dave Johnson
                                        Dept. of Math Science
                                        Rice University
                                        dbj.rice at Rand-Relay



More information about the Comp.unix.wizards mailing list