From: Sasha Levin Date: Tue, 27 Sep 2011 13:03:47 +0000 (+0300) Subject: kvm tools: Set active console before running /bin/sh X-Git-Tag: next-20110928~7^2~1 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=802d8270abc048c48b01b730d9c12e79cd63f24c;p=karo-tx-linux.git kvm tools: Set active console before running /bin/sh This patch sets active console to the serial console before running the shell. Doing so fixes two issues: * Fix job control. * Set all env vars. The user visible issues are less warnings (no more of this: sh: cannot set terminal process group (-1): Inappropriate ioctl for device sh: no job control in this shell) A working 'top', and a working ctrl-c. Signed-off-by: Sasha Levin Signed-off-by: Pekka Enberg --- diff --git a/tools/kvm/guest/init.c b/tools/kvm/guest/init.c index 837acfb18c28..4fc6aaf02194 100644 --- a/tools/kvm/guest/init.c +++ b/tools/kvm/guest/init.c @@ -11,7 +11,7 @@ static int run_process(char *filename) { char *new_argv[] = { filename, NULL }; - char *new_env[] = { NULL }; + char *new_env[] = { "TERM=linux" }; return execve(filename, new_argv, new_env); } @@ -30,6 +30,12 @@ int main(int argc, char *argv[]) do_mounts(); + /* get session leader */ + setsid(); + + /* set controlling terminal */ + ioctl (0, TIOCSCTTY, 1); + puts("Starting '/bin/sh'..."); run_process("/bin/sh");