truss calls setpgid()
Ed Schouten
ed at 80386.nl
Mon Oct 11 13:17:20 UTC 2010
Hi all,
I've been seeing this bug for a very long time, but I was too lazy to
figure out the root cause earlier. It is TTY related, but in this case
the TTY layer is not to blame. It does things correctly.
When you run a command in truss which calls ioctls on TTYs, it just
locks up. This is because truss runs jobs in a separate process group.
This also means you cannot send signals to it:
truss sleep 10000
Pressing ^C here won't work.
I've fixed it locally like this:
Index: usr.bin/truss/setup.c
===================================================================
--- usr.bin/truss/setup.c (revision 213113)
+++ usr.bin/truss/setup.c (working copy)
@@ -78,7 +78,6 @@
}
if (pid == 0) { /* Child */
ptrace(PT_TRACE_ME, 0, 0, 0);
- setpgid (0, 0);
execvp(command[0], command);
err(1, "execvp %s", command[0]);
Question: was this intentional? I'd rather not break stuff.
Greetings,
--
Ed Schouten <ed at 80386.nl>
WWW: http://80386.nl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20101011/2bdeab64/attachment.pgp
More information about the freebsd-current
mailing list