프로세스의 종료 시간을 알기 위해 실행할 수있는 명령을 알고 싶습니다.
이미 프로세스를 시작하고 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>
while kill -0 <pid>; do ...이식성이 뛰어납니다-Linux 이외의 시스템에서도 작동합니다. bash를 사용할 이유가 없습니다. 코드는 bashism을 사용하지 않으므로 /bin/sh여기에서 완벽하게 좋습니다.
kill -0. 더 우아한 솔루션이라고 생각합니다.
어쩌면 그 명령 time은 당신의 필요에 맞을 것입니다 :
time [options] command [arguments...]
예:
time /local/usr/bin/myProcess arg1 arg2
프로세스가 완료되면 프로세스 완료 time시간 (초 단위)과 같은 일부 통계가 표시됩니다.
매뉴얼 페이지를 확인하거나이 온라인 매뉴얼 페이지를 살펴보십시오 .
time옵션은 아니다.
at하십시오 (맨 페이지 : 참조man at). 이렇게하면 작업으로 대기열에 들어갑니다. 작업이 완료되면 알림을받습니다. 매우 기본적이며 Cron과 비슷하지만 한 번의 작업에 적합합니다.