Нет, нет такой опции, также это не должно иметь никого.
Если необходимо измерить это, необходимо сначала знать, сколько файлов присутствует в системе, которая означает цикл через все дважды, это может быть медленно
Один evicent пример - это при извлечении исходного кода ядра с file-roller
, это медленнее, чем выполнение того же самого с tar
непосредственно, потому что ролик файла должен зарегистрировать все файлы сначала (иначе, индикатор выполнения мог бы быть неправильно отображен), и Вы ожидаете некоторое время, прежде чем процесс извлечения на самом деле начался.
Это сохраняет метку времени и последний PID в файл каждую секунду в Bash:
if [ -r /proc/sys/kernel/ns_last_pid ]
then
while true
do
while read
do
if [ "$REPLY" != "$old" ]
then
printf '%(%s)T %d\n' -1 "$REPLY"
old="$REPLY"
fi
done < /proc/sys/kernel/ns_last_pid
read -t 1 || true
done > pids.log
fi
Проблемы:
ns_last_pid
корректное число. Документация не является четкой мне: Последний pid выделил в токе (одна задача с помощью этого sysctl жизни в) изодромное с предварением пространство имен.
/proc/sys/kernel/ns_last_pid
является только доступным в Linux 3.3 и более новымread
не имеет -t
опция.sleep
, cat
или другой non-builtins, так как они использовали бы дополнительный PIDs.POSIX не позволяет присваивать последний PID ядром, таким образом, не может быть портативного ответа.
Вот острота, которая должна работать над всеми системами, реализовывая dtrace (Солярис, FreeBSD, NetBSD, Mac OS X, Oracle Linux с последним UEK, и другие как Illumos основывали Ose, Linux с dtrace4linux),
# dtrace -qn 'proc:::exec-success { printf("%Y - %d\n",walltimestamp,pid); }'
2013 May 15 00:48:47 - 1276
2013 May 15 00:48:49 - 1277
2013 May 15 00:48:52 - 1278
Править:
На Linux альтернатива должна была бы использовать systemtap при наличии, которым эта (непротестированная) команда должна предоставить подобному выводу:
# stap -e 'probe syscall.execve { printf("%s - %d\n",ctime(gettimeofday_s()),pid()); }'
apt-cache search debuginfo
не показывает ничего полезного, таким образом, я предполагаю, что это не возможно на моем дистрибутиве.
– l0b0
15.05.2013, 13:53
bash
от оболочки Korn. Таким образом, это неbash
конкретный,ksh93/bash
конкретный. Отметьте этоsleep
встроено вksh93
и это также имеет acat
встроенный (только включил если/opt/ast/bin
прежде/bin
(или везде, где системаcat
) в$PATH
). POSIX не указывает, какие команды встроены. – Stéphane Chazelas 14.05.2013, 18:01