Перейти к содержимому

Udev не выполнит некоторые строки в моем скрипте

0

Я работаю над Beaglebone Black под Debian. Я пишу правила Udev для управления картой µSD. Что нужно сделать Udev: когда мой µSD подключен, подключите µSD /media/sdcard(он работает) и выполните скрипт, который выполняет:

  • Остановите rsyslog.service (это делает)
  • Переместить / var / log в / media / sdcard (это НЕ)
  • создайте ссылку из / var / log на / media / sdcard / log (для продолжения записи в журнал, но на SD-карте) (это не так, но / media / sdcard / log не существует, поскольку предыдущий шаг не удался)
  • перезапустите службу rsyslog (она работает)

Вот скрипт, который делает то, что я только что описал:

logger 'Enterring /root/ServolineScripts/LogsonSDcard.sh script' logger 'Refreshing Mountinglogs' sudo rm /var/log/Mountinglogs.log logger 'Stopping syslog service' sudo /etc/init.d/rsyslog stop sudo mv /var/log /media/sdcard/ sudo ln -s /media/sdcard/log /var/log sudo /etc/init.d/rsyslog start logger 'Successfully restarted rsyslog, logs are back on syslog!' logger 'Restarted syslog service' logger 'Quitting /root/ServolineScripts/LogsonSDcard.sh script' 

Я не уверен, почему он не перемещает каталог / var / log. Этот же скрипт выполняется вручную с помощью простого sh /root/ServolineScripts/LogsonSDcard.sh ...

Интересно, это проблема прав ...

381 просмотр
JeromeLEKIEFFRE спросил 8 лет назад
J 1

1 ответ

0
Принятый ответ

Я пишу ответ, с чем мне помогли в комментариях.

Кредиты на @kostix;)


Вероятно, главной проблемой было чрезмерное использование sudo в скрипте, который выполняется Udev, у которого уже есть права root . @kostix предложил мне написать два разных скрипта, один с действиями и один основной, который вызывает функции в скрипте действий. Я выполнил оба решения, удалив sudoненужное и создав другой сценарий с действиями. Это сработало отлично, и теперь я могу посмотреть на другие проблемы в моем сценарии!

JeromeLEKIEFFRE ответил 8 лет назад
J 1