script(1), cfmakeraw() and Ctrl-Z

Eugene Grosbein eugen at grosbein.net
Mon Jul 15 04:45:26 UTC 2013


On 15.07.2013 04:37, Jilles Tjoelker wrote:
> On Mon, Jul 15, 2013 at 12:14:19AM +0700, Eugene Grosbein wrote:
>> I've noted that commands like "script -qa /tmp/log sleep 100"
>> cannot be suspended with Ctrl-Z keys. The reason is call to cfmakeraw()
>> in script.c - if I comment it out, Ctrl-Z starts to work as expected.
> 
>> portupgrade uses script(1) so build/install process cannot be suspended too.
>> (I'm building libreoffice-4.04 now)
> 
>> The function cfmakeraw() is used since CVS revision 1.1 when script
>> was imported with other "BSD 4.4 Lite Usr.bin Sources".
> 
>> Is cfmakeraw() really needed?
> 
> The cfmakeraw() call ensures that the processes running within script
> get all control characters. For example, you can suspend a job in the
> inner shell using Ctrl+Z. This indeed makes it impossible to suspend
> script itself.

Is it possible to achieve same effect of passing other control characters but Ctrl-Z?
So, it would be possible suspend long-running portupgrade.

Eugene Grosbein




More information about the freebsd-stable mailing list