I want to know when a running process will terminate. How can I watch it?

I would like to know any command that I can run to know the end time of a process.

I have already launched the process and know its PID but I want to know if there is any command that can tell me at what time it ended.

THanks for your help.

1

3 Answers

Run this:

while kill -0 <PID>; do sleep 1; done; echo "Process finished at $(date +"%F %T")."

Or you can make a bash script. wait-for-death.sh:

#!/bin/bash
if ! kill -0 $1; then echo "Process $1 doesn't exist." exit 1
fi
while kill -0 $1; do sleep 1
done
echo "Process $1 finished at $(date +"%F %T")."

Then give it execution permission:

chmod +x wait-for-death.sh

and run it passing the process' PID:

./wait-for-death.sh <PID>
3

If you want to avoid PID collisions you can use at:

job_id=$(at now <<< 'sleep 10' 2>&1 | awk 'END {print $2}')
while at -l | grep -q "^${job_id}\s"
do sleep 1
done
echo "Process finished at $(date)"

Maybe the command time fits to your need:

time [options] command [arguments...]

Example:

time /local/usr/bin/myProcess arg1 arg2

Once the process finishes time will show some statistics like the time taken to complete the process (in seconds I think).

Check the man page or just take a look to this online man page.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like