Community
Participate
Working Groups
Open a Linux-dstore connection, and a shell within the connection. Launch a remote program from the shell. Press Ctrl+C --> The remote program is not stopped. On ssh shells, this works properly.
For the IBM stuff, we have a psuedo terminal (written in C) that can deal with sending signals. RSE's command miner detects whether this is available to determine whether to use it for it's wrapper shell or just use the shell. With just io streams, dstore is unable to send signals appropriate for Ctrl+C. The only work around is to use the psuedo term but that's not available in open source. Do to this limitation I'm not sure how to address this bug.
Just FYI, I think that on SSH it also only works because a PTY is allocated on the remote side. The literal "Ctrl+C" character is passed the shell channel and interpreted as command to send a signal inside the PTY. SSH provides an RFC for directly sending signals, and JSch has an API for it, but OpenSSH currently doesn't implement that RFC: https://bugzilla.mindrot.org/show_bug.cgi?id=1424 If we want to provide PTY support in Open Source, such that dstore can also interpret the BREAK command, a small C program for PTY support has been contributed to bug 196337, attachment 110783 [details].
Created attachment 129282 [details] patch to end shell process on ctrl+C
The fix in the patch does a process.destroy() if there is no pty in responce to the CTRL+C. I've committed the change to cvs.
This actually made it into M6