haskell / haskell/process

supporting more general signal propagation, beyond delegate_ctrlc

Open
#198 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
91
Forks
91
PR merge metrics
No merged PRs in 30d

Description

When create_group is used, the process, being in its own group, does not receive signals that are sent to the foreground process group. I believe (but have not verified) that delegate_ctrlc could be used in this situation to at least get the child process to cleanly shut down on ctrl-c. But there are other signals equally important, including SIGTSTP (ctrl-z), SIGWINCH, SIGHUP, SIGQUIT, and SIGTERM.

The interface of process does not help propagating any of those, and there's no portable way to handle it that will work across unix and windows.

So, I suggest adding something like interruptProcessGroupOf that allows sending other signals than SIGINT. The user can then use https://github.com/pmlodawski/signal to portably install a signal handler that propagates signals to whatever child processes it has run this way.

This might also address https://github.com/haskell/process/issues/68, although it would be without the nice delegation interface. I think it may make more sense to not have special stuff in this library to delegate every signal, but just give the users the tools they need to build whatever signal propagation they desire.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.