time
есть что-то для этого:
nohup time -o runtime.out./main &> /dev/null &
Если бы это было написано в сценарии и не требовало tty, я бы предпочел использовать setsid
, а не nohup + &
, потому что он лучше "демонизирует" и при необходимости может послать сигнал HUP
.
setsid time -o runtime.out./main /dev/null
Также обратите внимание, что здесь (, как и в вопросе OP )time
, это /usr/bin/time
, который имеет формат вывода, отличный от встроенной команды bash time
. Похоже, что /usr/bin/time --portability
дает аналогичный результат, если это необходимо.
Позвольте мне дать реальный ответ на исходный вопрос и объяснить, как создать такое состояние:
mkfile 100m ufs
lofiadm -a /path/to/ufs
newfs /dev/rlofi/1
newfs: Neues Dateisystem /dev/rlofi/1 erstellen: (y/n)? y
/dev/rlofi/1: 204600 Sektoren in 341 Zylindern von 1 Spuren, 600 Sektoren
99,9MB in 22 Zylindergruppen (16 c/g, 4,69MB/g, 2240 i/g)
Superblock Backups (für fsck -F ufs -o b=#) bei:
32, 9632, 19232, 28832, 38432, 48032, 57632, 67232, 76832, 86432,
115232, 124832, 134432, 144032, 153632, 163232, 172832, 182432, 192032, 201632
mount /dev/lofi/1 /mnt
cd /mnt
mkdir -p a/b/c d
ls -lid a/b/ a/b/c a/b/c/..
5 drwxr-xr-x 3 root root 512 Apr 20 17:05 a/b/
6 drwxr-xr-x 2 root root 512 Apr 20 17:05 a/b/c
5 drwxr-xr-x 3 root root 512 Apr 20 17:05 a/b/c/..
link a/b/c/ d/hlink
ls -lid a/b/ a/b/c a/b/c/.. d/ d/hlink/ d/hlink/..
5 drwxr-xr-x 3 root root 512 Apr 20 17:05 a/b/
6 drwxr-xr-x 3 root root 512 Apr 20 17:05 a/b/c
5 drwxr-xr-x 3 root root 512 Apr 20 17:05 a/b/c/..
7 drwxr-xr-x 2 root root 512 Apr 20 17:08 d/
6 drwxr-xr-x 3 root root 512 Apr 20 17:05 d/hlink/
5 drwxr-xr-x 3 root root 512 Apr 20 17:05 d/hlink/..
Это создает тестовую файловую систему ufs в файле, который затем используется в качестве блочного устройства с помощьюlofi(7d)
«драйвера файла обратной связи» (см. fbk
примечание ниже )и монтируется в каталог /mnt
. Файловая система ufs (в отличие от zfs )также поддерживает создание жестких ссылок на каталоги, но только от root.
Как видите, номер инода для a/b/
равен 5, и номер инода of a/b/c/..
тоже равен 5. Вы также видите, что количество ссылок для каталога a/b/c увеличилось на единицу после вызова link
.
После создания нового жестко связанного каталога d/hlink
вы видите, что номер инода для d/hlink/..
равен не 7 (номеру инода каталога выше ), а 5 (номеру инода для исходный каталог над этим каталогом ).
Кстати, :файловая система loopback
впервые появилась в 1987 году в SunOS -4.0. Его цель - действовать как косвенный уровень VFS, который позволяет монтировать дерево файловой системы во второй раз на той же машине. Я не уверен, является ли это монтирование Linux повторной реализацией идеи петлевой файловой системы.
Очевидно то, что файлfbk
драйвера (, эмулирующий блочное устройство ), изобретенное мной в октябре 1988 года, было повторно реализовано в середине -1990-х годов на Linux под неправильным именем loopback
.
Если исходить из того, что простейшая возможность является наиболее вероятной:
I do know that other people were moving directories around and renaming them, though I don't know exactly what they did.
, то сценарий должен быть относительно простым для воспроизведения. Рассмотрим этот пример, запущенный с подсказками 1$
для первого терминала, перемежающимися с 2$
для второго
# Set up the scenario
1$ mkdir a a/b a/b/c d
1$ cd a/b/c
# Look at the parent inode
1$ ls -lid..
143279 drwxr-xr-x 3 roaima roaima 4096 Apr 20 08:42..
# Second session changes the directory structure
2$ mv a/b/c d
# Look at the parent inode once more - notice it's changed
1$ ls -lid..
142603 drwxr-xr-x 3 roaima roaima 4096 Apr 20 08:43