Raspbian: проблема с перенаправлением вывода в скрипте udev

ccache ведет себя таким образом, чтобы имитировать различные обращения к двоичным файлам компилятора. ccache - это кэш компиляции - смысл в том, чтобы никогда не компилировать один и тот же исходный код дважды, а возвращать объектный код из кэша, если это возможно.

Из ccache man page: "Есть два способа использования ccache. Вы можете префикснуть команды компиляции с помощью ccache или позволить ccache маскироваться под компилятор, создав символическую ссылку (с именем компилятора) на ccache. Первый способ наиболее удобен, если вы только хотите опробовать ccache или хотите использовать его для некоторых конкретных проектов. Второй метод наиболее полезен, когда вы хотите использовать ccache для всех ваших компиляций."

Метод симлинков включает выполнение следующих команд:

cp ccache /usr/local/bin/
ln -s ccache /usr/local/bin/gcc
ln -s ccache /usr/local/bin/g++
ln -s ccache /usr/local/bin/cc
ln -s ccache /usr/local/bin/c++
... etc ...

... Эффект этого заключается в том, что ccache получает любые команды, которые в противном случае были бы переданы компиляторам, что позволяет ccache возвращать кэшированный файл или передавать команду реальному компилятору".

1
05.09.2017, 19:45
1 ответ

В Raspibian служба systemd -udevd, скорее всего, запускается с параметром systemd ProtectSystem. Это означает, что udev сможет писать только в файлы в каталоге /dev. Если вы запустите

sudo systemctl edit systemd-udevd

он откроет пустой (если вы его не модифицировали ранее )текстовый файл в системном текстовом редакторе (скорее всего nano )в котором вы сможете изменить параметры udev оказание услуг. В соответствии сhttps://www.freedesktop.org/software/systemd/man/systemd.exec.htmlвы можете добавить

ReadWritePaths=/tmp

для вашего оригинального скрипта (записи в /tmp/logfile.log )для работы. Вам также потребуется перезапустить udevd, чтобы изменения вступили в силу

.
sudo systemctl restart systemd-udevd
1
27.01.2020, 23:44

Теги

Похожие вопросы