2016-01-23 86 views
1

我通過C API使用LXC,並簡單地複製和粘貼示例代碼(如鏈接所示,但用我自己的函數名替換main函數名)。然後從我的程序的另一個代碼塊中調用它,我無法讓容器正常啓動。無法獲取LXC容器啓動

start的調用返回false。如果我將第二個參數更改爲0(意味着應該使用lxcinit而不是/ sbin/init),則啓動「成功」,但容器狀態立即設置爲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"); 

就產生空文件。

認爲這可能與another issue I saw,我也試着設置:

c->set_config_item(c, "lxc.aa_allow_incomplete", "1"); 

創建一個單獨的C++程序,編譯它就像一個魅力,但是當我試圖把它從另一個程序中調用,通過簡單地添加一個函數並調用它(特別是a uni project),我無法讓它正常運行。

+0

我會從決定單一語言開始,去掉其他語言的標籤。然後,閱讀其他標籤的描述並決定它們是否合適。然後,閱讀發佈指南併爲其他人提供足夠的信息來重現您的問題。儘管準確! –

+0

我想說這兩種語言都很有用,因爲API是用於C的,但我們正在開發的項目是用C++編寫的。可以通過構建我鏈接到的項目來重現我的問題,調用我描述的功能(也鏈接)。我試圖確定一個創建這個問題的最小案例,並且隨着我的工作的發展,這篇文章將保持最新。 –

回答

0

事實證明,我可以通過禁用作爲大型項目tcmalloc和asan的一部分包含的兩個軟件包來解決此問題。