Как определить приоритетность конкретного процесса при запуске? - PullRequest
1 голос
/ 07 января 2012

В Linux я хочу, чтобы процесс был назначен с более высоким приоритетом, чем обычно. То есть когда процесс начинается, я хочу, чтобы его приоритет был установлен на более высокое значение. Я хочу, чтобы это было сделано неявно, т. Е. При запуске процесса (например, при двойном щелчке).

Для этого мне придется изменить код ядра (sched.c)?

И есть ли какие-либо инструменты или пакеты, с помощью которых я вижу, как именно начинается процесс и как назначаются приоритеты?

Может ли ptrace (http://linux.die.net/man/2/ptrace) и strace (http://linux.die.net/man/1/strace) помочь мне с этим?

Ответы [ 2 ]

1 голос
/ 12 января 2012

Предполагая, что вы не хотите взламывать само приложение, вы всегда можете создать собственный настольный файл, который обернет команду «nice», что изменит правильность (приоритет) команды, которую вы запустите.

Например, создайте ~ / .local / share / Applications / myfastapp.desktop, который выглядит так:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Exec=nice -n -20 /usr/bin/myapp
Name=My App (niced)
Comment=Custom definition for myapp
0 голосов
/ 08 января 2012

Попросите процесс вызвать системный вызов set_priority () в main (), чтобы понизить его приятный уровень и повысить приоритет. Для получения дополнительной информации см. Справочную страницу: http://linux.die.net/man/2/setpriority

Вы также можете пометить процесс как процесс в реальном времени, используя sched_setscheduler (), но это немного сложнее и, вероятно, является излишним для того, что вы ищете.

Вам 100% не нужно менять ядро ​​для этого: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...