我想知道可以运行的任何命令来了解进程的结束时间。
我已经启动了该进程并且知道它的 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
将显示一些统计数据,例如完成该过程所花费的时间(我认为以秒为单位)。
查看手册页或者直接在网上查看手册页。