libutempter uses SIGCHLD, but script(1) pty implementation completely
control all signals by signalfd and utempter does not work.
The solution is to setup signalfd later (after libutempter use).
Fixes: https://github.com/util-linux/util-linux/issues/1904
Signed-off-by: Karel Zak <kzak@redhat.com>
printf(_(".\n"));
}
-#ifdef HAVE_LIBUTEMPTER
- utempter_add_record(ul_pty_get_childfd(ctl.pty), NULL);
-#endif
if (ul_pty_setup(ctl.pty))
err(EXIT_FAILURE, _("failed to create pseudo-terminal"));
+#ifdef HAVE_LIBUTEMPTER
+ utempter_add_record(ul_pty_get_childfd(ctl.pty), NULL);
+#endif
+
+ if (ul_pty_signals_setup(ctl.pty))
+ err(EXIT_FAILURE, _("failed to initialize signals handler"));
fflush(stdout);
/*