In the past, if the console client exited, lxc_console_cb_con return 1. And the lxc_poll will exit, the process will wait at waitpid. At this moment, the process could not handle any command (For example get the container state LXC_CMD_GET_STATE or stop the container LXC_CMD_STOP.). I think we should clean the tty_state and return 0 in this case. So, we can use the lxc-console to connect the console of the container. And we will not exit the function lxc_polland we can handle the commands by lxc_cmd_process Reproducer prior to this commit: - open a new terminal, get the tty device name by command tty /dev/pts/6 - set lxc.console.path = /dev/pts/6 - start the container and the ouptut will print to /dev/pts/6 - close /dev/pts/6 - try an operation e.g. getting state with lxc-ls and lxc-ls will hang Closes #1787. Signed-off-by:LiFeng <lifeng68@huawei.com> Acked-by:
Christian Brauner <christian.brauner@ubuntu.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| cgroups | Loading commit data... | |
| lsm | Loading commit data... | |
| storage | Loading commit data... | |
| tools | Loading commit data... | |
| Makefile.am | Loading commit data... | |
| af_unix.c | Loading commit data... | |
| af_unix.h | Loading commit data... | |
| arguments.c | Loading commit data... | |
| arguments.h | Loading commit data... | |
| attach.c | Loading commit data... | |
| attach.h | Loading commit data... | |
| attach_options.h | Loading commit data... | |
| caps.c | Loading commit data... | |
| caps.h | Loading commit data... | |
| commands.c | Loading commit data... | |
| commands.h | Loading commit data... | |
| commands_utils.c | Loading commit data... | |
| commands_utils.h | Loading commit data... | |
| conf.c | Loading commit data... | |
| conf.h | Loading commit data... | |
| confile.c | Loading commit data... | |
| confile.h | Loading commit data... | |
| confile_legacy.c | Loading commit data... | |
| confile_legacy.h | Loading commit data... | |
| confile_utils.c | Loading commit data... | |
| confile_utils.h | Loading commit data... | |
| console.c | Loading commit data... | |
| console.h | Loading commit data... | |
| criu.c | Loading commit data... | |
| criu.h | Loading commit data... | |
| error.c | Loading commit data... | |
| error.h | Loading commit data... | |
| execute.c | Loading commit data... | |
| freezer.c | Loading commit data... | |
| genl.c | Loading commit data... | |
| genl.h | Loading commit data... | |
| initutils.c | Loading commit data... | |
| initutils.h | Loading commit data... | |
| list.h | Loading commit data... | |
| log.c | Loading commit data... | |
| log.h | Loading commit data... | |
| lxc.functions.in | Loading commit data... | |
| lxc.h | Loading commit data... | |
| lxc_monitord.c | Loading commit data... | |
| lxc_user_nic.c | Loading commit data... | |
| lxccontainer.c | Loading commit data... | |
| lxccontainer.h | Loading commit data... | |
| lxclock.c | Loading commit data... | |
| lxclock.h | Loading commit data... | |
| lxcseccomp.h | Loading commit data... | |
| mainloop.c | Loading commit data... | |
| mainloop.h | Loading commit data... | |
| monitor.c | Loading commit data... | |
| monitor.h | Loading commit data... | |
| namespace.c | Loading commit data... | |
| namespace.h | Loading commit data... | |
| network.c | Loading commit data... | |
| network.h | Loading commit data... | |
| nl.c | Loading commit data... | |
| nl.h | Loading commit data... | |
| parse.c | Loading commit data... | |
| parse.h | Loading commit data... | |
| rtnl.c | Loading commit data... | |
| rtnl.h | Loading commit data... | |
| seccomp.c | Loading commit data... | |
| start.c | Loading commit data... | |
| start.h | Loading commit data... | |
| state.c | Loading commit data... | |
| state.h | Loading commit data... | |
| sync.c | Loading commit data... | |
| sync.h | Loading commit data... | |
| utils.c | Loading commit data... | |
| utils.h | Loading commit data... | |
| version.h.in | Loading commit data... |