Я использую LXC через C API и просто скопировал и вставил код примера ( как показано в этой ссылке, но заменив имя функции main
моим собственным). Затем, вызывая это из другого блока кода в моей программе, я не могу заставить контейнер правильно запускаться.
Вызов start
просто возвращает false. Если я изменю второй параметр start на 0 (имеется в виду, что вместо /sbin/init следует использовать lxcinit
), то start "успешен", но состояние контейнера сразу устанавливается в STOPPED
, и поэтому я не могу подключиться к контейнеру.
Попытка получить логи, установив:
c->set_config_item(c, "lxc.logfile", "/home/user/lxc-log.log");
c->set_config_item(c, "lxc.logpriority", "TRACE");
c->set_config_item(c, "lxc.console.logfile", "/home/user/lxc-log2.log");
c->set_config_item(c, "lxc.console.logpriority", "TRACE");
Просто выдает пустые файлы.
Подумав, что это может быть связано с другой проблемой, которую я заметил, я также попытался установить:
c->set_config_item(c, "lxc.aa_allow_incomplete", "1");
Создание отдельной программы на C++ и ее компиляция работает как шарм, но когда я пытаюсь вызвать ее из другой программы, просто добавляя функцию и вызывая ее (в частности, университетский проект), я вообще не могу заставить его работать должным образом.