장기 실행 프로세스에 대한 ps 경과 시간 형식 이해


10

ps주어진 임계 값보다 오래 실행되는 프로세스를 식별하기 위해 연습의 일부로 명령을 사용하고 있습니다.

알려진 프로세스 명령의 경과 시간을 얻기 위해 다음 템플릿을 사용하고 있습니다.

ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'

단기 실행 프로세스에서 etime (경과 시간) 값이 형식을 취하므로 minutes:seconds프로세스가 얼마나 오래 실행되었는지 쉽게 확인할 수 있습니다.

매우 오래 실행되는 프로세스 (일 길이)의 경우 형식을 이해하지 못합니다.

htop126 시간 동안 실행되는 것으로 표시 되는 MySQL 서버 프로세스가 있습니다.

실행 ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'하면 가치가 9-03:35:32있습니다.

내 생각 엔 9 초, 3 시간, 35 분, 32 초를 의미합니다. 9의 단위가 무엇인지 알 수 없습니다.

해당 프로세스는 126 시간, 약 5.25 일 실행되었습니다. 이는 위 출력의 9가 일을 나타내지 않음을 나타냅니다. (9 * 12) 시간 + 3 시간 + 35 분 + 32 초가 5 일 미만이므로 반일이 될 수 없습니다.

장기 실행 프로세스에서보고있는 경과 시간 값을 어떻게 해석합니까? 위의 출력에서 ​​9와 함께 제공되는 단위는 무엇입니까?


여기 POSIX 시간 형식이 표시됩니다. Minutes : seconds는 BSD 시간 형식입니다. Linux ps는 전달한 옵션에 따라 하나 이상을 표시합니다.
Gilles 'SO- 악마 그만해

다시 확인하려면 etimes대신 etime결과를 비교하십시오.
Ruslan

답변:


16

표준 에 따르면 :

POSIX 로케일에서 프로세스가 시작된 이후의 경과 시간은 다음과 같은 형식입니다.

[[dd-]hh:]mm:ss

여기서 dd는 일 수, hh 시간 수, mm 분 수 및 ss 수를 나타냅니다. dd 필드는 십진 정수 여야합니다. hh, mm 및 ss 필드는 왼쪽에 0으로 채워지는 두 자리 10 진수 정수 여야합니다.

따라서 9는 믿든 말든 며칠을 의미합니다. htop의 출력을 잘못 해석 할 수 있습니까? top (시간 형식이 minutes:seconds)은 무엇을 말합니까? htop에서보고있는 필드가 etime과 동일하다는 것이 확실합니까? (예를 들어, 126 CPU 시간을 의미 할 수 있습니까?)


확인 감사합니다. htop은 126 시간을 확실히 보여 주지만 벽 시간이 아니라 다른 시간 (아마 CPU 시간) 일 수 있다고 생각합니다. htop의 필드는 etime과 같지 않습니다. 여기서 잘못 가정했습니다.
Jon Cram

1
@JonCram 시간이 확실합니까? 원래 상단에는 분만 표시됩니다 (즉, 시간을 나누지 않고 60 분 이상으로 이동). 126 : 37과 같은 숫자는 126 분 37 초를 의미합니다. 나는 멈춤이 같을 것이라고 생각했다. 9 일 동안 126 시간의 CPU 시간은 많은 것 같습니다.
Random832
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.