Я хочу знать, когда завершится запущенный процесс. Как я могу посмотреть это?

Я хотел бы знать любую команду, которую я могу запустить, чтобы узнать время окончания процесса.

Я уже запустил процесс и знаю его PID, но я хочу знать, есть ли какая-нибудь команда, которая может сказать мне, в какое время он закончился.

Спасибо за вашу помощь.

14
задан 27 June 2013 в 15:17

3 ответа

Запустите это:

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>
0
ответ дан 27 June 2013 в 15:17

Если вы хотите избежать коллизий 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)"
0
ответ дан 27 June 2013 в 15:17

Может быть, команда time подойдет вам:

time [options] command [arguments...]

Пример:

time /local/usr/bin/myProcess arg1 arg2

После завершения процесса time будет отображаться некоторая статистика, например время, затраченное на завершить процесс (думаю, за несколько секунд).

Проверьте справочную страницу или просто загляните на эту онлайновую справочную страницу .

0
ответ дан 27 June 2013 в 15:17

Другие вопросы по тегам:

Похожие вопросы: