Skip to content
  • Michael Tokarev's avatar
    disallow -daemonize usage of stdio (curses display, -nographic, -serial stdio etc) · ab51b1d5
    Michael Tokarev authored
    Curses display requires stdin/out to stay on the terminal,
    so -daemonize makes no sense in this case.  Instead of
    leaving display uninitialized like is done since 995ee2bf
    
    ,
    explicitly detect this case earlier and error out.
    
    -nographic can actually be used with -daemonize, by redirecting
    everything to a null device, but the problem is that according
    to documentation and historical behavour, -nographic redirects
    guest ports to stdin/out, which, again, makes no sense in case
    of -daemonize.  Since -nographic is a legacy option, don't bother
    fixing this case (to allow -nographic and -daemonize by redirecting
    guest ports to null instead of stdin/out in this case), but disallow
    it completely instead, to stop garbling host terminal.
    
    If no display display needed and user wants to use -nographic,
    the right way to go is to use
      -serial null -parallel null -monitor none -display none -vga none
    instead of -nographic.
    
    Also prevent the same issue -- it was possible to get garbled
    host tty after
    
      -nographic -daemonize
    
    and it is still possible to have it by using
    
      -serial stdio -daemonize
    
    Fix this by disallowing opening stdio chardev when -daemonize
    is specified.
    
    Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    ab51b1d5