ВСЕГДА запускать команды с низким приоритетом на Unix?

1864
laramichaels

Я не спрашиваю, как создать команду в UNIX.

Случается так, что на конкретной машине, на которую я часто захожу, мне разрешено запускать только долго работающие процессы с низким приоритетом (хороший 19). Есть ли способ, чтобы все мои команды на этой машине выполнялись так, как если бы я их "подчинил"?

Неизбежно я забываю ставить перед командой префикс «nice 19», когда запускаю ее, затем мне нужно разобраться в ps / top, чтобы найти pid моего процесса перехвата ресурсов и затем перезапустить его. Слишком много проблем, и я рискую раздражать сисадмина; Есть ли способ сделать это по умолчанию?

большое спасибо! ~ л

3
Похоже, это вопрос типа системного администратора, касающийся использования операционной системы, а не программирования. Это может быть лучше подходит для superuser.com. JAL 14 лет назад 2

4 ответа на вопрос

3
Dennis Williamson

В предположении Bash, если ваша система поддерживает эту функцию, поместите ее в свой ~/.bashrcили ~/.profile:

ulimit -e 19 

Вы можете попробовать это сначала из командной строки в качестве теста.

2
JAL

Вы можете попросить своего системного администратора проверить корректирующий файл limit.conf, который является частью конфигурации PAM и находится (в моей системе Ubuntu) в / etc / security.

Линия как

@users hard priority 19 

устанавливает по умолчанию «привлекательность» для процессов, запускаемых учетными записями пользователей.

0
Phil Miller

Этот ответ предполагает, что ваша оболочка есть bash.

Вместо того, чтобы заглядывать в psили top, просто приостановите процесс (ы) с помощью Ctrl-z, если они не были запущены таким образом (через &), а затем запустите, jobs -lчтобы получить pid, reniceэтот pid, а затем продолжите выполнение задания через bg(для BackGround) или fg(ForeGround).

0
Janne Pikkarainen

Вы пробовали очень хорошо ? Это немного устарело, но все еще кажется программой, которая может подойти для ваших нужд.