실행중인 프로세스가 언제 종료되는지 알고 싶습니다. 어떻게 볼 수 있습니까? PID를 알고 있지만 종료 시점을 알려주는 명령이

프로세스의 종료 시간을 알기 위해 실행할 수있는 명령을 알고 싶습니다.

이미 프로세스를 시작하고 PID를 알고 있지만 종료 시점을 알려주는 명령이 있는지 알고 싶습니다.

당신의 도움을 주셔서 감사합니다.



답변

이것을 실행하십시오 :

while kill -0 <PID>; do sleep 1; done; echo "Process finished at $(date +"%F %T")."

또는 bash 스크립트를 만들 수 있습니다. wait-for-death.sh:

#!/bin/bash

if ! kill -0 $1; then
    echo "Process $1 doesn't exist."
    exit 1
fi

while kill -0 $1; do
    sleep 1
done

echo "Process $1 finished at $(date +"%F %T")."

그런 다음 실행 권한을 부여하십시오.

chmod +x wait-for-death.sh

프로세스의 PID를 전달하여 실행하십시오.

./wait-for-death.sh <PID>

답변

PID 충돌을 피하려면 다음을 사용할 수 있습니다 at.

job_id=$(at now <<< 'sleep 10' 2>&1 | awk 'END {print $2}')
while at -l | grep -q "^${job_id}\s"
do
    sleep 1
done
echo "Process finished at $(date)"

답변

어쩌면 그 명령 time은 당신의 필요에 맞을 것입니다 :

time [options] command [arguments...]

예:

time /local/usr/bin/myProcess arg1 arg2

프로세스가 완료되면 프로세스 완료 time시간 (초 단위)과 같은 일부 통계가 표시됩니다.

매뉴얼 페이지를 확인하거나이 온라인 매뉴얼 페이지를 살펴보십시오 .