How to use the command 'Wait-Process' (with examples)
The ‘Wait-Process’ command is used to wait for the specified process or processes to be stopped before accepting more input. This command can only be used through PowerShell. It is useful when you need to ensure that a process has finished executing before proceeding with the next steps in a script.
Use case 1: Stop a process and wait
Code:
Stop-Process -Id process_id; Wait-Process -Id process_id
Motivation: You would use this example when you want to stop a specific process and wait for it to be fully stopped before continuing with the script. For example, if you want to stop a service and then perform additional operations related to that service, you can use this command to ensure that the service has actually stopped before proceeding.
Explanation:
Stop-Process -Id process_id
- This command stops the process with the specified process ID (process_id
).Wait-Process -Id process_id
- This command waits for the process with the specified process ID (process_id
) to be stopped before proceeding.
Example Output:
Stop-Process -Id 12345
Wait-Process -Id 12345
In this example, the process with ID 12345 will be stopped using the Stop-Process
command. The Wait-Process
command will then wait for this process to be fully stopped before accepting more input.
Use case 2: Wait for processes for a specified time
Code:
Wait-Process -Name process_name -Timeout 30
Motivation: This example is useful when you want to wait for a specific process or processes to be stopped, but you also want to set a timeout to limit the waiting time. If the process does not stop within the specified timeout period, the command will return an error.
Explanation:
Wait-Process -Name process_name
- This command waits for the process or processes with the specified name (process_name
) to be stopped before proceeding. Multiple processes can be specified by separating them with a comma.-Timeout 30
- This optional argument specifies the timeout period in seconds. The command will wait for the specified processes to stop for the given number of seconds. If the processes do not stop within this time, an error will be returned.
Example Output:
Wait-Process -Name notepad -Timeout 30
In this example, the command will wait for all processes with the name ’notepad’ to be stopped. It will wait for a maximum of 30 seconds and return an error if the processes are still running after the timeout period.
Conclusion:
The ‘Wait-Process’ command in PowerShell is a handy tool for controlling the flow of scripts that involve processes. It can be used to wait for a specific process to be stopped or wait for multiple processes to be stopped within a specified timeout period. By using this command, you can ensure that the necessary processes have completed their execution before proceeding with the next steps in your script.