이전 실행 프로세스의 시작 시간을 얻을 수 있습니까? 것 같다 ps
올해 시작하지 않은 경우 오늘 시작하지 않은 경우 날짜 (시간이 아니라), 만 년을보고합니다. 오래된 프로세스에서 정밀도가 영원히 손실됩니까?
ps -p <pid> -o lstart=
추가 라인 (헤더)이 인쇄되지 않도록 사용 하는 것이 좋습니다 .
이전 실행 프로세스의 시작 시간을 얻을 수 있습니까? 것 같다 ps
올해 시작하지 않은 경우 오늘 시작하지 않은 경우 날짜 (시간이 아니라), 만 년을보고합니다. 오래된 프로세스에서 정밀도가 영원히 손실됩니까?
ps -p <pid> -o lstart=
추가 라인 (헤더)이 인쇄되지 않도록 사용 하는 것이 좋습니다 .
답변:
lstart
다음 명령과 같이 포맷터를 지정하고을 사용할 수 있습니다 .
ps -eo pid,lstart,cmd
위의 명령은 PID, 명령 실행 및 날짜 + 시간 시작을 얻기 위해 포맷터와 함께 모든 프로세스를 출력합니다.
예 (데비안 / Jessie 명령 행에서)
$ ps -eo pid,lstart,cmd
PID CMD STARTED
1 Tue Jun 7 01:29:38 2016 /sbin/init
2 Tue Jun 7 01:29:38 2016 [kthreadd]
3 Tue Jun 7 01:29:38 2016 [ksoftirqd/0]
5 Tue Jun 7 01:29:38 2016 [kworker/0:0H]
7 Tue Jun 7 01:29:38 2016 [rcu_sched]
8 Tue Jun 7 01:29:38 2016 [rcu_bh]
9 Tue Jun 7 01:29:38 2016 [migration/0]
10 Tue Jun 7 01:29:38 2016 [kdevtmpfs]
11 Tue Jun 7 01:29:38 2016 [netns]
277 Tue Jun 7 01:29:38 2016 [writeback]
279 Tue Jun 7 01:29:38 2016 [crypto]
...
ps
의 맨 페이지를 읽 거나 다른 포매터에 대해서는 Opengroup 페이지 를 확인할 수 있습니다 .
etime
프로세스가 시작된 이후 경과 된 시간입니다.
ps axo pid,cmd,lstart
또한 작동 함
ps 명령 (적어도 많은 Linux 배포에서 사용되는 procps 버전)에는 프로세스 시작 시간과 관련된 여러 형식 필드가 있으며 프로세스를 시작한 lstart
전체 날짜와 시간을 항상 포함 합니다.
# ps -p 1 -wo pid,lstart,cmd
PID STARTED CMD
1 Mon Dec 23 00:31:43 2013 /sbin/init
# ps -p 1 -p $$ -wo user,pid,%cpu,%mem,vsz,rss,tty,stat,lstart,cmd
USER PID %CPU %MEM VSZ RSS TT STAT STARTED CMD
root 1 0.0 0.1 2800 1152 ? Ss Mon Dec 23 00:31:44 2013 /sbin/init
root 5151 0.3 0.1 4732 1980 pts/2 S Sat Mar 8 16:50:47 2014 bash
정보가 / proc 파일 시스템에 게시되는 방법에 대한 자세한 내용은 /unix/7870/how-to-check-how-long-a-process-has-been-running을 참조 하십시오.
(리눅스에서의 경험에서 / proc / 디렉토리의 타임 스탬프는 프로세스의 시작 시간이 아닌 가상 디렉토리에 최근에 액세스 한 순간과 관련이있는 것 같습니다.
# date; ls -ld /proc/1 /proc/$$
Sat Mar 8 17:14:21 EST 2014
dr-xr-xr-x 7 root root 0 2014-03-08 16:50 /proc/1
dr-xr-xr-x 7 root root 0 2014-03-08 16:51 /proc/5151
이 경우 약 16:50에서 "ps -p 1"명령을 실행 한 다음 새 bash 셸을 생성 한 다음 바로 그 셸 내에서 "ps -p 1 -p $$"명령을 실행했습니다. .)
e
(표준 ps
구문) 또는 ax
ps 명령에 (BSD 구문) 인수 : 즉, ps -ewo pid,lstart,cmd
나ps -axwo pid,lstart,cmd
의 후속으로 아담 마탄의 대답 은 /proc/<pid>
같은 디렉토리의 타임 스탬프는 반드시 직접 도움이되지 않습니다,하지만 당신은 사용할 수 있습니다
awk -v RS=')' 'END{print $20}' /proc/12345/stat
시스템 부팅 이후 시작 시간을 시계 틱으로 표시합니다. 1
이것은 약간 까다로운 단위입니다. 자세한 내용은 지프를 초로 변환 을 참조하십시오.
awk -v ticks="$(getconf CLK_TCK)" 'NR==1 { now=$1; next }
END { printf "%9.0f\n", now - ($20/ticks) }' /proc/uptime RS=')' /proc/12345/stat
이것은 strftime()
(사람이 읽을 수있는 또는 다른 방식으로) 타임 스탬프를 얻기 위해 전달할 수있는 초를 제공해야합니다 .
awk -v ticks="$(getconf CLK_TCK)" 'NR==1 { now=$1; next }
END { print strftime("%c", systime() - (now-($20/ticks))) }' /proc/uptime RS=')' /proc/12345/stat
주석에서 Stephane Chazelas의 일부 수정 사항으로 업데이트되었습니다. 언제나처럼 감사합니다!
Mawk 만있는 경우 시도해보십시오.
awk -v ticks="$(getconf CLK_TCK)" -v epoch="$(date +%s)" '
NR==1 { now=$1; next }
END { printf "%9.0f\n", epoch - (now-($20/ticks)) }' /proc/uptime RS=')' /proc/12345/stat |
xargs -i date -d @{}
1 명의 남자 proc ; starttime을 검색하십시오 .
strftime()
및 systime()
에 표시되지 않음 을 명심하십시오 . 따라서 이미지는 방언 에만 해당한다고 가정 할 수 있습니다 . mawk
awk
gawk
ls -ltrh /proc | grep YOUR-PID-HERE
예를 들어 내 Chrome의 PID는 11583입니다.
ls -l /proc | grep 11583
dr-xr-xr-x 7 adam adam 0 2011-04-20 16:34 11583
ps
말한다 invalid option
다른 답변에서 언급 한 모든 옵션을.
grep
? 왜 안돼 ls -ldh /proc/$pid
? 아니면 더 나은 date -r /proc/$pid
?
ps -eo pid,etime,cmd|sort -n -k2
ps -p <pid> -o lstart
있습니까? 그것이 효과가있는 것처럼 보이지만 왜이 질문이 나오는 것처럼 여러 번 즉각적인 대답이 아닌지 잘 모르겠습니다.