- e опция с различными эмуляторами терминала

Вы не можете swapoff, потому что объем подкачанной памяти не может настигнуть Ваша RAM. Вы получаете законное сообщение об ошибке.

Маленький отрывок.

if (!quiet || errno == ENOMEM)
    warn(_("%s: swapoff failed"), orig_special);

return -1;

По-моему, Ваша рабочая нагрузка повышает Ваш спрос RAM. Вы выполняете рабочую нагрузку, которая требует большей памяти. Использование всей подкачки указывает на это. Кроме того, изменение swappiness к 1 не могло бы быть мудрым решением. Установка swappiness к 1 не указывает, что свопинг не будет сделан. Это просто указывает, как агрессивное ядро будет в отношении свопинга, это не устраняет свопинг. Свопинг произойдет если потребности, которые будут сделаны.

Кроме того, я не знаю, почему Вы пытаетесь отключить подкачку. Если у Вас нет тонн и тонн RAM, Вы не должны отключать подкачку.

Конечно, можно перезагрузить и подкачать использование, будет нуль затем. И Вы можете безопасно swapoff затем. Но, который не решает проблему в длительный срок.

Вы возражали бы, отправляя /proc/meminfo вывод.

1
23.10.2013, 17:09
1 ответ

sakura кажется, повреждается, но для других, существует два основных типа: те, которые берут один аргумент после -e и рассматривайте его как командную строку оболочки и тех, которые берут список аргументов, и первый используется для получения команды для выполнения (никакая оболочка не включена так, функции оболочки как каналы не могут быть использованы.

xterm, когда особый случай упадет во второй категории, если будет больше чем один аргумент или одна твердость аргумента (поиском в $PATH) к существующему исполняемому файлу, и во второй категории иначе.

Так:

xterm -e 'ls | less'

Будет работать /usr/bin/ls | less исполняемый файл, например (да имя файла с пробелами и символами вертикальной черты) с ls | less как первый аргумент, если это существует, или иначе (более вероятно), /bin/sh с, sh, -c, ls | less иначе.

В большинстве других терминалов (и в этом рекомендуют также xterm также для подъема неоднозначности), необходимо звонить sh explicitely:

lxterminal -e sh -c 'ls | less'

sakura -e кажется, не работает. Это -x работы в некоторой степени. Можно сделать:

sakura -x 'sh -c "ls | less"'

Это, кажется, делает, подобный оболочке парсинг отдельного аргумента передал -x, разделение, что в список аргументов, и затем выполняют это.

О прокрутке в less. Это работает в sakura (и другие основанные на VTE эмуляторы терминала), потому что, когда в альтернативе screen (как будто после издания tput smcup), прокрутка вниз и события отправляют те же escape-последовательности при нажатии ключей Up и Down.

Вы заметите, что это не работает с ls | less -X, где smcup не выпущен.

xterm поддержки, что как опция, не включенная по умолчанию. Можно изменить его путем установки XTerm.VT100.alternateScroll ресурс к true, например, путем добавления:

XTerm.VT100.alternateScroll: true

к Вашему ~/.Xdefaults (для xterms запустился на той машине), или в файле ресурсов, загруженном в Ваш X-сервер (для xterms запустился где угодно и соединяющийся с Вашим X-сервером), или вызов xterm с:

xterm -xrm 'XTerm.VT100.alternateScroll: true' -e sh -c 'ls | less'
3
27.01.2020, 23:29

Теги

Похожие вопросы