5个稳定版本
2.0.0 | 2024年1月26日 |
---|---|
1.0.4 | 2024年1月26日 |
1.0.3 |
|
1.0.2 | 2022年8月12日 |
1.0.1 | 2020年2月5日 |
#7 in #windows-api
6,357 每月下载量
在 16 个crate中使用 (5 直接)
24KB
371 代码行
win32job
Windows作业对象的安全API,可用于设置与其关联的进程的各种限制。
[dependencies]
win32job = "2"
示例
限制此进程可用的内存量(分配更多内存仍然可能,但将被分页)
use win32job::{Job, ExtendedLimitInfo};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut info = ExtendedLimitInfo::new();
info.limit_working_memory(1 * 1024 * 1024, 4 * 1024 * 1024);
let job = Job::create_with_limit_info(&mut info)?;
job.assign_current_process()?;
Ok(())
}
强制任何创建的子进程在主进程退出时退出
use win32job::Job;
use std::process::Command;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let job = Job::create()?;
let mut info = job.query_extended_limit_info()?;
info.limit_kill_on_job_close();
job.set_extended_limit_info(&mut info)?;
job.assign_current_process()?;
Command::new("cmd.exe")
.arg("/C")
.arg("ping -n 9999 127.0.0.1")
.spawn()?;
// The cmd will be killed once we exit, or `job` is dropped.
Ok(())
}
许可证
根据您的选择,win32job
crate许可协议为以下之一
Apache License, Version 2.0, (LICENSE-APACHE or https://apache.ac.cn/licenses/LICENSE-2.0)
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
。
依赖项
~127MB
~2M SLoC