Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: ZSH history not saved anymore
Kurtis Rader <krader@xxxxxxxxxxxxx> writes:
Hi Kurtis,
> The problem is the SIGPIPE. It's terminating the shell before it has a
> chance to handle the SIGHUP. Notice that the SIGPIPE was sent by the user
> process with pid 4637 running as uid 1000. I'll bet that you'll find that
> user ID is yours
Yes.
> and the pid is the terminal emulator.
Yes.
> If you look earlier in the strace output for the terminal emulator you
> should be able to find the kill syscall that sent the SIGPIPE. I have
> no idea why the emulator feels the need to send SIGPIPE -- that's a
> very peculiar thing to do.
Indeed. ZSH has pid 2019 in here:
--8<---------------cut here---------------start------------->8---
munmap(0x7f1291b1c000, 7680000) = 0
close(23) = 0
futex(0x25322d8, FUTEX_WAKE, 1) = 1
close(22) = 0
kill(2029, SIGCONT) = 0
kill(2029, SIGPIPE) = 0
wait4(2029, 0x7fffb1676de4, WNOHANG, NULL) = 0
nanosleep({0, 1000000}, NULL) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=2029, si_uid=1000, si_status=SIGPIPE, si_utime=4, si_stime=0} ---
rt_sigreturn() = -1 EINTR (Interrupted system call)
wait4(2029, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGPIPE}], WNOHANG, NULL) = 2029
epoll_ctl(3, EPOLL_CTL_DEL, 22, 7fffb1676d80) = -1 EBADF (Bad file descriptor)
[...]
+++ exited with 0 +++
--8<---------------cut here---------------end--------------->8---
> Obviously you can work around the problem by telling zsh to trap that
> signal:
>
> TRAPPIPE() {
> exit
> }
Yes, that works. So I'll keep that in my ~/.zshrc for the time being.
Thanks for your help, Kurtis!
Bye,
Tassilo
Messages sorted by:
Reverse Date,
Date,
Thread,
Author