실행중인 프로세스의 벽시계 시간을 어떻게 알 수 있습니까?


14

큰 파일의 해시 검사를 시작했으며를 사용하여 다시 시작하고 싶지 않습니다 time. 처음에 시간을 사용하지 않거나 date명령을 호출하기 직전에 벽 시계 시간을 얻으려면 어떻게 해야합니까?

답변:


12

실행중인 프로세스의 경우 다음을 수행 할 수 있습니다.

PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime

일반적인 기능으로 쉘 프롬프트를 수정할 수 있습니다. 이것은 내 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:> "

당신과 관련된 부분 \t은 시간입니다.

그러나 모든 문제가 해결되는 것은 아닙니다. 프로세스가 종료되면 새 프롬프트가 표시되지만 측정 할 명령이 시작되면 이전 프롬프트가 상당히 오래되었을 수 있습니다. 따라서 장기 실행 명령을 시작하기 전에 프롬프트를 갱신하거나 현재 프로세스가 얼마나 오래 걸 렸는지 알고 자하는 현재 시간을 기억해야합니다.

완벽한 솔루션을 위해서는 감사 기능 (프로세스의 시작 및 종료 시간을 기록)이 필요합니다. 그러나 셸로 제한 할 수없는 경우 엄청난 양의 데이터가 발생할 수 있습니다.


1

허용 된 답변을 바탕으로 다음을 사용하여 실행중인 프로세스의 경과 시간을 지속적으로 모니터링 할 수 있습니다 watch.

PID=5462
watch command ps -p "$PID" -o etime
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.