#进程管理
进程是操作系统运行程序的基本单位。PowerShell 提供了一组以 Process 结尾的命令,用于查看、启动、等待和终止进程。这些命令在 Windows、Linux 和 macOS 上基本通用。
#查看进程
Get-Process 返回当前系统上的进程对象:
> Get-Process
可以按名称筛选,名称支持通配符:
> Get-Process -Name pwsh*
常用的进程属性如下:
| 属性 | 说明 |
|---|---|
Id | 进程 ID |
ProcessName | 进程名称 |
CPU | 累计占用的处理器时间(秒) |
WorkingSet64 | 工作集大小(字节) |
例如找出占用内存最多的前五个进程:
> Get-Process | Sort-Object -Property WorkingSet64 -Descending |
Select-Object -First 5 ProcessName, Id, WorkingSet64
#启动进程
Start-Process 用于启动一个可执行文件或文档:
Start-Process -FilePath <路径> [-ArgumentList <参数>] [-WorkingDirectory <目录>]
常用参数:
-FilePath- 要启动的程序或文件-ArgumentList- 传给程序的参数,多个参数用数组表示-WorkingDirectory- 启动时使用的工作目录-PassThru- 返回进程对象,便于后续操作-Wait- 等待进程结束后再返回
> $p = Start-Process -FilePath pwsh -ArgumentList '-NoProfile', '-Command', 'Start-Sleep 3' -PassThru
> $p.Id
加上 -Wait 时,命令会阻塞到目标进程退出:
> Start-Process -FilePath pwsh -ArgumentList '-NoProfile', '-Command', 'Write-Host 完成' -Wait
#终止进程
Stop-Process 按 ID 或名称终止进程:
> Stop-Process -Id 1234
名称支持通配符,但可能同时匹配多个进程,建议先确认:
> Get-Process -Name python* | Select-Object Id, ProcessName
> Stop-Process -Name python* -Force
-Force 会跳过确认,但不会尝试优雅地关闭程序。
#等待进程
Wait-Process 等待指定进程退出:
> Wait-Process -Id 1234
> Wait-Process -Name pwsh -Timeout 30
-Timeout指定最长等待秒数,超时会报错;若进程已退出,命令会立即返回。
#注意事项
Get-Process、Stop-Process 等命令在 Linux 和 macOS 上只显示当前用户有权限访问的进程信息。操作系统对进程的控制也受到权限限制,终止系统进程通常需要管理员权限。