프로세스의 종료 시간을 알기 위해 실행할 수있는 명령을 알고 싶습니다.
이미 프로세스를 시작하고 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
시간 (초 단위)과 같은 일부 통계가 표시됩니다.
매뉴얼 페이지를 확인하거나이 온라인 매뉴얼 페이지를 살펴보십시오 .