Существует ли "стандартный"
временный каталог каталога, выделенный для отдельного процесса, который исчезает вместе с самим процессом? Что-то похожее на / proc / $ pid / tmp
или / proc / self / tmp
. Существует множество временных каталогов: системные глобальные временные каталоги, временные пользовательские каталоги, постоянные и те, которые очищаются при перезагрузке, на основе tmpfs
и т. Д.
Создается впечатление, что иметь временный каталог для каждого процесса - это здравый смысл. пока я не могу найти ни одного.
Вкратце: Нет. Элементы /proc основаны на памяти, и будет лучше, если вы будете использовать что-то вроде /tmp oir /usr/tmp (или подобное) с командой mktmp или подобной.
Как уже говорилось, ядру будет очень дорого занимать место в памяти, и память вашей машины вскоре будет исчерпана.
Любое приложение, использующее временные файлы, также должно выполнять некоторую уборку, очищая их после себя.
Нет, не существует стандартного или даже смутно общего места для временного файла каждого процесса. Причина в том, что временные файлы для каждого процесса очень редки. Смысл временного файла почти всегда заключается в обмене данными между процессами. Если процессу не нужно взаимодействовать с другими процессами, то он может хранить данные в своей памяти.
Что имело бы немного больше смысла, так это временный каталог для каждого процесса, файлы которого доступны и другим процессам, но который удаляется при завершении процесса. Однако это довольно дорогая операция (с точки зрения сложности реализации): при завершении процесса придется выполнять рекурсивное удаление файлов и каталогов, что может привести к очень сложным действиям, например, к исчезновению точки монтирования. Выгода будет довольно мала для того, что можно реализовать в паре строк оболочки.
#!/bin/sh
tmpdir=$(mktemp -d) || exit
the_real_program; ret=$?
rm -rf -- "$tmpdir"
exit $ret
Технически, то, что вы хотите, возможно с помощью FUSE: заставить процесс реализовать временную файловую систему через драйвер FUSE. Но, опять же, это большая сложность для небольшой выгоды.