Я не думаю, что существует что-либо, что необходимо сделать специально для приложений Java, но действительно необходимо сделать что-то для приложений для GUI в целом.
Я сделал это на своем домашнем компьютере, но я не дома прямо сейчас, так терпите меня. У меня есть сценарий, который монтирует все в мой chroot как /dev
и /proc
, но это также копирует ~/.X*
также. Если я помню правильно, в Вашей домашней папке существуют файлы, которые запускаются с .Xauth
, и Вы копируете тех, которые в домашнюю папку Вашей chroot среды. По моему опыту, эти файлы должны быть скопированы каждый раз, когда X перезапущен.
То, что я сделал бы для проверения этого метода, было, я только что запустил простое X приложений как xterm
. Это было просто быстрое и простое приложение, с которым я мог протестировать. xterm
должен дать Вам сообщение об ошибке, если оно не может соединиться с X-сервером.
У меня, оказывается, есть полный пакет X11, установленный в мой chroot, но я не знаю достаточно приблизительно X, чтобы знать, работают ли chroot'd приложения на chroot'd X-сервере или на X-сервере хоста.
Это произойдет, если у Вас будут редкие файлы:
$ mkdir test; cd test
$ truncate -s 1000000000 file-with-zeroes
$ ls -l
total 0
-rw-r--r-- 1 gim gim 1000000000 03-08 22:18 file-with-zeroes
Редкий файл является файлом, который не был заполнен с блоками файловой системы (или только частично). При чтении ненаселенной зоны редкого файла, Вы получите нули. Такие пустые зоны не требуют пространства фактической дисковой емкости и 'общего количества', о котором сообщают ls
соответствует дисковому пространству, занятому файлами (точно так же, как du
).
Обратите внимание на то, что вывод, данный ls -l
и du
имеет тонкое, но очень важное различие. Попробуйте это:
dd if=/dev/urandom of=aaa bs=1024 count=1
Теперь
ls -l aaa
-rw-r--r-- 1 abc abc 1024 2012-03-08 15:45 aaa
Принимая во внимание, что
du -h aaa
4.0K aaa
Это вызвано тем, что файловая система выделяет размер в блоках 4 096 (на моем поле Linux). Это называют Блоком IO. Вы видите это:
stat aaa
File: `aaa'
Size: 1024 Blocks: 8 IO Block: 4096 regular file
stat
на моем предложенном empty-file
, и Вы будете видеть, что количество Блоков 0, даже если файл, как сообщают, имеет размер 1G.
– Stéphane Gimenez
09.03.2012, 02:17
stat
сообщает, что эквивалентное количество старого размерного блока должно было сохранить все 4K блоки (который является 8 раз вещественным числом 4K блоков).
– Stéphane Gimenez
09.03.2012, 11:21
Принятый ответ абсолютно правильный, просто если вы хотите увидеть видимый размер, вы можете использовать:
du --apparent-size
печатать видимые размеры, а не использование диска; хотя видимый размер обычно меньше, он может быть больше из-за дыр в («разреженных») файлах, внутренней фрагментации, косвенных блоков и т.п.
-s
/--size
опция "Print the disk allocation of each file to the left of the file name. This is the amount of disk space used by the file, which is usually a bit more than the file's size, but it can be less if the file has holes".-l
опция, конечно, печатает размер, также. – Francesco Turco 21.09.2012, 15:45