In a script I’d like to monitor the process list in a way that, in order to continue the execution of the script, a certain process has to be started.
I came up with something like:
while ! pgrep "process_to_match"
do
sleep 10
done;
# the rest of the script
The problem with that script is that if the “process_to_match” is started for less than 10ms the “rest of the script” won’t be executed.
An even better solution for me would be to trigger the execution of a script on “process_to_match” launch.
Any ideas?
Thanks.
,
Can you check in another way that the process has been executed? I mean does this process logs or modifies anything?
If not, you can replace the process by a shell script (rename the process and create a shell with the process file name) that will log something after running the process you are waiting for.
,
What is your actual need?
If you know the PID of the process you are monitoring, then you just have to wait for it:
wait $pid
Obtaining this PID is as simple as:
process_to_match & pid=$!