| //! A command which prints out information about the process it runs in. |
| |
| use rustix::io; |
| |
| #[cfg(all(feature = "process", feature = "param"))] |
| #[cfg(not(windows))] |
| fn main() -> io::Result<()> { |
| use rustix::param::*; |
| use rustix::process::*; |
| |
| println!("Pid: {}", getpid().as_raw_nonzero()); |
| println!("Parent Pid: {}", Pid::as_raw(getppid())); |
| println!("Uid: {}", getuid().as_raw()); |
| println!("Gid: {}", getgid().as_raw()); |
| #[cfg(any( |
| all(target_os = "android", target_pointer_width = "64"), |
| target_os = "linux", |
| ))] |
| { |
| let (a, b) = linux_hwcap(); |
| println!("Linux hwcap: {:#x}, {:#x}", a, b); |
| } |
| println!("Page size: {}", page_size()); |
| println!("Clock ticks/sec: {}", clock_ticks_per_second()); |
| println!("Uname: {:?}", uname()); |
| println!("Process group priority: {}", getpriority_pgrp(None)?); |
| println!("Process priority: {}", getpriority_process(None)?); |
| println!("User priority: {}", getpriority_user(Uid::ROOT)?); |
| println!( |
| "Current working directory: {}", |
| getcwd(Vec::new())?.to_string_lossy() |
| ); |
| println!("Cpu Limit: {:?}", getrlimit(Resource::Cpu)); |
| println!("Fsize Limit: {:?}", getrlimit(Resource::Fsize)); |
| println!("Data Limit: {:?}", getrlimit(Resource::Data)); |
| println!("Stack Limit: {:?}", getrlimit(Resource::Stack)); |
| println!("Core Limit: {:?}", getrlimit(Resource::Core)); |
| println!("Rss Limit: {:?}", getrlimit(Resource::Rss)); |
| println!("Nproc Limit: {:?}", getrlimit(Resource::Nproc)); |
| println!("Nofile Limit: {:?}", getrlimit(Resource::Nofile)); |
| println!("Memlock Limit: {:?}", getrlimit(Resource::Memlock)); |
| #[cfg(not(target_os = "openbsd"))] |
| println!("As Limit: {:?}", getrlimit(Resource::As)); |
| #[cfg(not(any( |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| )))] |
| println!("Locks Limit: {:?}", getrlimit(Resource::Locks)); |
| #[cfg(not(any( |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| )))] |
| println!("Sigpending Limit: {:?}", getrlimit(Resource::Sigpending)); |
| #[cfg(not(any( |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| )))] |
| println!("Msgqueue Limit: {:?}", getrlimit(Resource::Msgqueue)); |
| #[cfg(not(any( |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| )))] |
| println!("Nice Limit: {:?}", getrlimit(Resource::Nice)); |
| #[cfg(not(any( |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| )))] |
| println!("Rtprio Limit: {:?}", getrlimit(Resource::Rtprio)); |
| #[cfg(not(any( |
| target_os = "android", |
| target_os = "emscripten", |
| target_os = "freebsd", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "netbsd", |
| target_os = "openbsd", |
| )))] |
| println!("Rttime Limit: {:?}", getrlimit(Resource::Rttime)); |
| #[cfg(any( |
| all(target_os = "android", target_pointer_width = "64"), |
| target_os = "linux" |
| ))] |
| println!("Execfn: {:?}", linux_execfn()); |
| Ok(()) |
| } |
| |
| #[cfg(any(windows, not(all(feature = "process", feature = "param"))))] |
| fn main() -> io::Result<()> { |
| unimplemented!() |
| } |