Dan*_*n S 15 linux process time
我开始对一个大文件进行哈希检查,但不想使用time
. 如何在不使用开始时或date
在调用命令之前使用时间的情况下获取挂钟时间?
Hau*_*ing 14
对于正在运行的进程,您可以这样做:
PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime
Run Code Online (Sandbox Code Playgroud)
作为一般功能,您可以修改您的 shell 提示。这是我的 bash 提示定义:
TERM_RED_START=$'\033[1m\033[31m'
TERM_RED_END=$'\033(B\033[m'
PS1='\nec:$(ec=$?; if [ 0 -eq $ec ];
then printf %-3d $ec;
else echo -n "$TERM_RED_START"; printf %-3d $ec; echo "$TERM_RED_END";
fi) \t \u@\h:\w\nstart cmd:> '
PS2="cont. cmd:> "
Run Code Online (Sandbox Code Playgroud)
与您相关的部分是\t
时间。
但这并不能解决所有问题。新的提示将显示该过程何时结束,但在启动要测量的命令时,以前的提示可能已经很旧了。因此,要么您记得在开始长时间运行的命令之前更新提示,要么您想知道当前进程将花费多长时间时必须记住当前时间。
对于完整的解决方案,您需要一个审计功能(记录进程的开始和结束时间)。但是如果不能限制在shell中,可能会导致大量的数据。