О, но cgroups легки :) Установите libcgroup пакет. Создайте/etc/cgconfig.conf:
mount {
cpu = /cgroup/cpu_and_mem;
cpuacct = /cgroup/cpu_and_mem;
memory = /cgroup/cpu_and_mem;
}
group sshd {
cpu {
cpu.shares="500";
}
cpuacct {
cpuacct.usage="0";
}
memory {
memory.limit_in_bytes="1G";
}
}
group nosshd {
cpu {
cpu.shares="500";
}
cpuacct {
cpuacct.usage="0";
}
memory {
memory.limit_in_bytes="1G";
}
}
Запустите cgconfig
процесс, который создаст иерархию, cgroups, и установит пределы. Если это успешно выполняется, у Вас есть два cgroups, оба из которых имеют 50% присвоенного ЦП и 1G доступной памяти (не знают, каков Ваш фактический объем доступной памяти; принятие это - 2G в этом примере). Теперь просто необходимо переместить все задачи (т.е. все процессы, работающие на системе) от корневой группы в nosshd cgroup:
cgroup]# cat tasks >> nosshd/tasks
cgroup]# echo > tasks
Затем просто необходимо получить PID sshd
процесс и перемещение это информация sshd файл задач:
cgroup]# echo $PID >> sshd/tasks
Ta-da, Вы сделаны. Можно теперь пребывать в уверенности, что sshd будет всегда иметь 50% ЦП и 1G памяти.
Это будет работать в любой Posix-совместимой оболочке:
ls good bad >/dev/null 2>&1
Необходимо перенаправить stdout сначала прежде, чем копировать его в stderr; при дублировании его сначала stderr просто укажет на то, на что первоначально указал stdout.
Bash, zsh и некоторые другие оболочки также обеспечивают ярлык
ls good bad &>/dev/null
который удобен на командной строке, но должен избежаться в сценариях, которые предназначаются, чтобы быть портативными.
/bin/sh
реализовали&>/dev/null
синтаксис, по-видимому, не так или у меня есть более старая версия (который я не могу повторить всегда, рабочий OpenBSD 5.3 tho так должен быть достаточным) – Torxed 25.06.2013, 22:29sh
основан на pdksh. В наше время больше нет Оболочки Bourne.csh
представленный>&
также доступный вzsh
.bash
выбрал&>
(теперь также поддерживаемыйzsh
и некоторыеpdksh
производные), хотя это ясно повреждает соответствие POSIX с тех порfoo &> file
совершенно допустимый синтаксис POSIX, что означает что-то совершенно другое. – Stéphane Chazelas 25.06.2013, 22:42foo &> file
похожfoo & > file
илиfoo & : > file
, это - выполненное нечто в фоне и открытом файле для записи ни для какой команды вообще (вряд ли, чтобы использоваться как этот). – Stéphane Chazelas 09.12.2014, 15:59>&
не идеально ни один, поскольку это конфликтует с>&2
,>&-
операторы.zsh
добавленный это для удобства для csh пользователей (csh не имеет>&2
). Они - просто синтаксический сахар, просто используют> file 2>&1
который является стандартным и портативным (к подобным Границе оболочкам). – Stéphane Chazelas 09.12.2014, 16:26