我想知道正在运行的进程何时终止。我该如何查看它?

我想知道正在运行的进程何时终止。我该如何查看它?

我想知道可以运行的任何命令来了解进程的结束时间。

我已经启动了该进程并且知道它的 PID,但我想知道是否有任何命令可以告诉我它在什么时候结束。

感谢您的帮助。

答案1

运行这个:

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

或者你可以创建一个 bash 脚本。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")."

然后赋予其执行权限:

chmod +x wait-for-death.sh

并通过进程的 PID 来运行它:

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

答案2

如果您想避免 PID 冲突,您可以使用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)"

答案3

也许该命令time适合您的需要:

time [options] command [arguments...]

例子:

time /local/usr/bin/myProcess arg1 arg2

一旦过程完成,time将显示一些统计数据,例如完成该过程所花费的时间(我认为以秒为单位)。

查看手册页或者直接在网上查看手册页

相关内容