Поведение echo
варьируется от оболочки до оболочки ¹; printf
поведение является более стандартным.
printf "Hi\nabcd" >> ab.txt
¹ "Не возможно использовать эхо портативно через все системы POSIX, если оба-n (как первый аргумент) и escape-последовательности не опущены".
rc.local
сценарий должен быть последним, выполняемым на начальной загрузке. Позвольте нам, предположил это не приходящий последний как в Вашей системе, затем это могло бы работать слишком рано, прежде /proc
даже смонтирован. Или это могла бы быть проблема на Вашем модульном ядре если smp_affinity_list
управляется модулем ядра, все еще не загруженным когда rc.local
выполняется.
Так, просто измените Ваш rc.local
и проверьте на существование /proc/irq/*/smp_affinity_list
прежде, чем отозваться эхом в него. Иначе sleep
в течение некоторого времени и попробуйте еще раз и в конечном счете испустите сообщение об ошибке через logger
команда, так, чтобы Вы смогли считать его в /var/log/syslog
.
У Вас может быть irqbalance сервис, загружающийся во время запуска, который сбросил бы что-либо, что у Вас есть выполнение при запуске. Эта статья объясняет, как остановиться irqbalance
сервис:
service --status-all
chkconfig --list | grep '3:on'
chkconfig irqbalance off
service irqbalance stop
И затем удалите его из начальной загрузки runlevel, таким образом, это не будет перезапущено на начальной загрузке:
update-rc.d -f irqbalance remove <-- removes from boot process
У меня была такая же проблема. Вам нужно:
1) Собрать последнюю версию irqbalance
. Старые версии (вплоть до Ubuntu 15.10!) глючат и игнорируют опцию --banirq
.
2) Отредактируйте /etc/default/irqbalance
или /etc/init/irqbalance.conf
, чтобы добавить --banirq=
.
3) Добавьте свои переопределения в /etc/rc.local
.