[−][src]Enum unshare::Error
Error runnning process
This type has very large number of options and it's enum only to be compact. Probably you shouldn't match on the error cases but just format it for user into string.
Variants
Unknown nix error
Frankly, this error should not happen when running process. We just
keep it here in case nix
returns this error, which should not happen.
Some invalid error code received from child application
CreatePipe(i32)
Error happened when we were trying to create pipe. The pipes used for
two purposes: (a) for the process's stdio (Stdio::pipe()
or
Stdio::null()
), (b) internally to wake up child process and return
error back to the parent.
Fork(i32)
Error when forking/cloning process
Exec(i32)
Error when running execve() systemcall
Chdir(i32)
Error when setting working directory specified by user
ParentDeathSignal(i32)
Unable to set death signal (probably signal number invalid)
PipeError(i32)
Error reading/writing through one of the two signal pipes
WaitError(i32)
Error waiting for process (for some functions only, for example
Command::status()
). It probably means someone already waited for
the process, for example it might be other thread, or signal handler.
StdioError(i32)
Error setting up stdio for process
SetUser(i32)
Could not set supplementary groups, group id or user id for the process
ChangeRoot(i32)
Error changing root, it explains chroot
, pivot_root
system calls
and setting working directory inside new root. Also includes unmounting
old file system for pivot_root case.
SetIdMap(i32)
Error setting uid or gid map. May be either problem running
newuidmap
/newgidmap
command or writing the mapping file directly
AuxCommandExited(i32)
Auxillary command failed
There are two auxillary commands for now: newuidmap
and newgidmap
.
They run only when uid mappings (user namespaces) are enabled.
Note that failing to run the binary results to SedIdMap(sys_errno)
,
this error contains status code of command that was succesfullly
spawned.
AuxCommandKilled(i32)
Auxillary command was killed by signal
Similar to AuxCommandExited
but when command was killed
SetPGid(i32)
Error when calling setpgid function
SetNs(i32)
Error when calling setns syscall
CapSet(i32)
Error when calling capset syscall
Before unfreeze callback error
PreExec(i32)
Before exec callback error
Implementations
impl Error
[src]
pub fn raw_os_error(&self) -> Option<i32>
[src]
Similarly to io::Error
returns bare error code
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl !UnwindSafe for Error
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,