Не удалось получить выходные данные execv после Pivot_rootLinux

Ответить Пред. темаСлед. тема
Anonymous
 Не удалось получить выходные данные execv после Pivot_root

Сообщение Anonymous »

После Pivot_root я могу вывести сообщение на вывод дочернего процесса; но когда я выполняю execve (), нет вывода (событие в файле журнала).

Код: Выделить всё

pub async fn run(cxt: cfg::Context, file: String) -> ChariotResult {
...

let mut stack = [0u8; 1024 * 1024];
let flags = CloneFlags::empty()
.union(CloneFlags::CLONE_NEWUSER)
.union(CloneFlags::CLONE_NEWNET)
.union(CloneFlags::CLONE_NEWPID)
.union(CloneFlags::CLONE_NEWNS);

let pid = unsafe {
nix::sched::clone(
Box::new(|| match run_container(cxt.clone(), container.clone()) {
Ok(()) => 0,
Err(e) => {
tracing::error!("Failed to run container: {e}");
-1
}
}),
&mut stack,
flags,
// The SIGCHLD signal is required for wait/waitpid;
// otherwise, ECHILD will be reported.
Some(libc::SIGCHLD),
)?
};

...
}

fn run_container(cxt: cfg::Context, container: Container) -> ChariotResult {
...
pivot_root(rootfs.as_str(), rootfs.as_str())?;

// Change working directory to '/'.
chdir("/")?;

// execute `container entrypoint`
let cmd = CString::new(container.entrypoint.as_bytes())?;
let _ = execv(cmd.as_c_str(), &[cmd.as_c_str()]);

Ok(())
}
Ссылка: https://github.com/openbce/chariot/blob ... mod.rs#L86


Подробнее здесь: https://stackoverflow.com/questions/790 ... pivot-root
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Оболочка CMake Python на основе execv завершается с ошибкой «Ошибка CMake: не удалось найти CMAKE_ROOT !!!»
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Оболочка CMake Python на основе execv завершается с ошибкой «Ошибка CMake: не удалось найти CMAKE_ROOT !!!»
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Когда память интеллектуальных указателей очищается при вызове execv() в программе?
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Execv() и константность
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Execv() и константность
    Anonymous » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»