Я не совсем уверен, берете ли Вы о планировании ввода-вывода Ядра. В случае, если Вы не: Проигнорируйте этот ответ.
Состояния Википедии, что CFG (абсолютно Справедливая Организация очередей) является значением по умолчанию начиная с Ядра 2.6.18.
На моем openSUSE (выполняющий Ядро 2.6.37) я могу переключиться между CFG, NOOP и Крайний срок.
Кажется, что Вы назвали свой сценарий gcc, поместили его в путь и затем назвали его рекурсивно. Или назовите свой сценарий чем-то другим или используйте явный путь к gcc исполняемому файлу, который Вы на самом деле хотите использовать.
Kevin уже нашел базовую проблему, а именно, что Вы называете свой собственный сценарий рекурсивно.
Простой способ избежать этого состоит в том, чтобы назвать перенесенную программу с полным путем. Более необычный путь состоит в том, чтобы исследовать $PATH
вручную и пропуск Ваш собственный сценарий (как определено с $0
).
find_command () {
script_dir={1%/*}; command_name=${1##*/}
real_command=
IFS=':'; set +f
for d in $PATH; do
if [ "$d" = "$script_dir" ]; then continue; fi
if [ -x "$d/$command_name" ]; then real_command="$d/command_name" break; fi
done
set -f; unset IFS
[ -n "$real_command" ]
}
find_command "$0" || {
echo 1>&2 "$0: cannot find underlying command in \$PATH=$PATH"
exit 2
}
exec "$0" -m32 "$@"
Некоторые дополнительные подсказки:
exec
если Вам не нужна оболочка еще, после того как Вы запустили реальную команду. Некоторые оболочки знают, чтобы сделать это как оптимизацию, но не все.#!/bin/sh
вместо #!/bin/bash
если Вы не используете функции удара. Во многих системах, sh
более минимизированная, более быстрая оболочка, чем bash
, с меньшим количеством функций, но сценариями обертки редко нуждаются в этих расширенных функциях.