시스템 장치가 얼마나 오랫동안 실행되었습니까?

시스템 장치가 얼마나 오랫동안 실행되었습니까?

부츠 뒤에 내 컴퓨터를 나열할 수 있습니다 journalctl --list-boots. 출력은 다음과 같습니다.

 -4 21b1318cbaf04732b95ed0a5e40f6698 Tue 2019-06-25 17:26:53 CEST—Fri 2019-07-05 17:11:31 CEST
 -3 02d30049fdef4a809122f499ef95d122 Fri 2019-07-05 17:12:33 CEST—Wed 2019-08-14 10:23:47 CEST
 -2 aedc9088bd0a4a9588c387e593c9cc25 Wed 2019-08-14 10:24:41 CEST—Fri 2019-09-20 16:28:12 CEST
 -1 e40c23b16b86400292b7da77f03f677f Fri 2019-09-20 16:29:03 CEST—Mon 2019-10-07 16:31:20 CEST
  0 973dc1142add4a249e784c1a68fac31a Mon 2019-10-07 16:32:11 CEST—Tue 2019-10-15 12:12:22 CEST

그래서 컴퓨터가 언제 시작되고 언제 종료되는지 알아내는 데 사용할 수 있습니다.

단일 시스템 단위(내 경우에는 .service)가 동일한 정보를 갖기를 원합니다. 그러나 나는 이 정보를 얻을 수 있는 방법을 찾지 못했습니다. 명백한 journalctl -u foo.service반환 라인은 다음과 같습니다.

Oct 10 00:00:01 localhost systemd[1]: Started foo service.
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:00:02 localhost foo[19382]: some foo output
Oct 10 00:11:22 localhost foo[19382]: some foo output
Oct 10 12:00:01 localhost systemd[1]: Started foo service.
...

이를 통해 서비스가 00:00:01에 시작되고 12:00:01에 다시 시작되었음을 알 수 있지만 정확히 얼마나 오랫동안 실행되었는지는 알 수 없습니다(적어도 00:11:22까지 실행되었다는 것뿐입니다). .

배경: 과거에 서비스(저의 경우 백업 스크립트)에 시간이 다소 걸렸는지 알고 싶습니다.

답변1

제 생각에는systemd-analyze 가능한답변이지만 그럴 것 같지는 않습니다.

하나 있다많은할 수 있을 것 같지만 "얼마나 오래 실행되는지"보다는 "서비스를 시작하는 데 얼마나 걸리나요"가 더 중요한 기능입니다.~을 위한". 후자는 아마도 그 기능이 아닐 것입니다. systemd-analyze plot > plot.svg셀 시작 시간(초기화에 소요된 시간 강조)에 대한 SVG 막대 차트를 출력하지만 "완료 시간"을 지원하지 않는 것 같습니다(일부 막대는 일찍 끊어지지만 이것이 서비스가 중단 지점에서 완료된다는 것을 의미하는지 확실하지 않음) 또는 동일한 실행에서 간헐적으로 실행되는 프로세스를 지원하는 것입니다...

다행히 관심 있는 서비스는 자신의 것이기 때문에 이를 수정하고 journalctl -u foo.service로그 파일을 읽거나 쓸 수 있는 "Started@" 및 "Finished@" 메시지를 추가할 수 있습니다.

그러나 수정하고 싶지 않은 일반 서비스의 경우에는 다른 답변이 필요합니다.

관련 정보