*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config OPENVT
+//config: bool "openvt (7 kb)"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: This program is used to start a command on an unused
+//config: virtual terminal.
+
+//applet:IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_OPENVT) += openvt.o
//usage:#define openvt_trivial_usage
//usage: "[-c N] [-sw] [PROG ARGS]"
//usage:#define openvt_full_usage "\n\n"
//usage: "Start PROG on a new virtual terminal\n"
-//usage: "\nOptions:"
//usage: "\n -c N Use specified VT"
//usage: "\n -s Switch to the VT"
/* //usage: "\n -l Run PROG as login shell (by prepending '-')" */
/*xfunc_error_retval = 3; - do we need compat? */
if (ioctl(fd, VT_OPENQRY, &vtno) != 0 || vtno <= 0)
bb_perror_msg_and_die("can't find open VT");
-// Not really needed, grep for DAEMON_ONLY_SANITIZE
+// Not really needed, grep for DAEMON_CLOSE_EXTRA_FDS
// if (fd > 2)
// close(fd);
return vtno;
/* Grab new VT */
sprintf(vtname, VC_FORMAT, vtno);
/* (Try to) clean up stray open fds above fd 2 */
- bb_daemonize_or_rexec(DAEMON_CLOSE_EXTRA_FDS | DAEMON_ONLY_SANITIZE, NULL);
+ bb_daemon_helper(DAEMON_CLOSE_EXTRA_FDS);
close(STDIN_FILENO);
/*setsid(); - BAD IDEA: after we exit, child is SIGHUPed... */
xopen(vtname, O_RDWR);