diff --git a/src/main.rs b/src/main.rs index 0238275..860bc11 100644 --- a/src/main.rs +++ b/src/main.rs @@ -142,8 +142,12 @@ fn init_container_overlay>(volume_path: P, upper_path: P, merged_ let lower_dir = volume_path.as_ref().to_string_lossy().to_string(); let upper_dir = upper_path.as_ref().to_string_lossy().to_string(); let merged_dir = merged_path.as_ref().to_string_lossy().to_string(); - - let dirs = format!("lowerdir={lower_dir},upperdir={upper_dir},workdir={merged_dir}"); + // 创建overlay的工作目录 + let work_path = merged_path.as_ref().parent().unwrap().join("work"); + let _ = create_dir(&work_path, true); + let work_dir = work_path.to_string_lossy().to_string(); + + let dirs = format!("lowerdir={lower_dir},upperdir={upper_dir},workdir={work_dir}"); let out = process::Command::new("mount") .arg("-t") .arg("overlay") @@ -181,7 +185,7 @@ fn init_container_dev>(container_merged_path: P) -> Result<()> { } // 执行绑定挂载 - mount(Some(host_dev_path.as_str()), container_dev_path.to_str().unwrap(), Some("tmpfs"), MsFlags::MS_BIND, None::<&str>)?; + mount(Some(host_dev_path.as_str()), container_dev_path.to_str().unwrap(), None::<&str>, MsFlags::MS_BIND, None::<&str>)?; } Ok(()) } @@ -252,7 +256,7 @@ fn init_container_pivot>(merged_path: P) -> Result<()> { let pwd_str = pwd_path.to_string_lossy().to_string(); // 挂载bind todo - mount(Some(pwd_str.as_str()), pwd_str.as_str(), Some("bind"), MsFlags::MS_BIND | MsFlags::MS_REC, None::<&str>)?; + mount(Some(pwd_str.as_str()), pwd_str.as_str(), None::<&str>, MsFlags::MS_BIND | MsFlags::MS_REC, None::<&str>)?; // 创建 rootfs/.pivot_root 目录用于存储 old_root let pivot_root_dir = format!("{pwd_str}/.pivot_root"); @@ -614,7 +618,7 @@ fn stop_container(containers_id: &str, is_remove: bool) -> Result<()> { return Ok(()) } for container_id in containers_id.split(" ") { - // 容器网络删除 + // 容器网络尝试删除 remove_network(container_id); let container_work_path = containers_path.join(container_id); diff --git a/test/test.py b/test/test.py index 1b4ea03..98bca46 100755 --- a/test/test.py +++ b/test/test.py @@ -8,9 +8,15 @@ import os import threading import ctypes -print("hello", time.time()) +cnt = 0 +print(cnt, "hello", time.time()) + +while True: + cnt += 1 + print(cnt, "hello", time.time()) + time.sleep(0.01) + -exit() def read_memory(address): # 创建一个足够大的缓冲区来读取内存