Я хотів би знати будь-яку команду, яку я можу запустити, щоб знати час завершення процесу.
Я вже запустив процес і знаю його 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 ...
є більш портативним - він працюватиме і в нелінукс-системах. І немає ніяких причин використовувати bash - ваш код не використовує ніяких башизмів, тому /bin/sh
тут ідеально добре.
kill -0
, я думаю, що це більш елегантне рішення.
Можливо, команда time
відповідає вашим потребам:
time [options] command [arguments...]
Приклад:
time /local/usr/bin/myProcess arg1 arg2
Як тільки процес закінчиться, time
буде показана деяка статистика, як, наприклад, час, необхідний для завершення процесу (я думаю, в секундах).
Перегляньте довідкову сторінку або просто загляньте на цю веб- сторінку .
time
це не варіант.
at
(див. Manpage:)man at
. Це поставить в чергу як роботу, вам буде повідомлено про її закінчення і т. Д. Це дуже просто, схоже на Cron, але для одиночних знімків роботи.