Files
simple-rust-tests/__linux/sysinfo/src/main.rs
2020-10-17 12:38:59 +08:00

48 lines
1.5 KiB
Rust

use sysinfo::{NetworkExt, ProcessExt, System, SystemExt};
fn main() {
let mut sys = System::new_all();
// We display the disks:
println!("=> disk list:");
for disk in sys.get_disks() {
println!("{:?}", disk);
}
println!("{}", "-".repeat(120));
// Network data:
for (interface_name, data) in sys.get_networks() {
println!("{}: {}/{} B", interface_name, data.get_received(), data.get_transmitted());
}
println!("{}", "-".repeat(120));
// Components temperature:
for component in sys.get_components() {
println!("{:?}", component);
}
println!("{}", "-".repeat(120));
// Memory information:
println!("total memory: {} KB", sys.get_total_memory());
println!("used memory : {} KB", sys.get_used_memory());
println!("total swap : {} KB", sys.get_total_swap());
println!("used swap : {} KB", sys.get_used_swap());
println!("{}", "-".repeat(120));
// Number of processors
println!("NB processors: {}", sys.get_processors().len());
println!("{}", "-".repeat(120));
// To refresh all system information:
sys.refresh_all();
// We show the processes and some of their information:
for (pid, process) in sys.get_processes() {
println!("- [{}] {} {:?}", pid, process.name(), process.disk_usage());
println!(" cmd: {:?}", process.cmd());
println!(" exe: {:?}", process.exe());
println!(" env: {:?}", process.environ());
println!(" cwd: {:?}", process.cwd());
}
}