перенаправление echo / printf не работает в фоновом процессе

У меня есть такая команда:

sudo sh -c "echo $ADDR > /sys/class/gpio/export"

Он правильно запускается из оболочки, но если я запускаю его как фоновый процесс, я получаю следующую ошибку:

нет tty и не указана программа askpass

Как я могу решить эту проблему?

Спасибо

Edit Я забыл чтобы показать вам шаги, которые я сделал:

  1. Подключился к моему встроенному Linux через SSH.
  2. Запустить сценарий, содержащий указанную выше команду от «nohup &».
  3. Теперь процесс работает в фоновом режиме.
  4. Светодиоды, подключенные к плате GPIO, работают должным образом.
  5. Я отключаю сеанс SSH.
  6. Светодиоды больше не работают.
  7. Я снова подключаюсь по SSH и в файле nohup.out читаю « нет tty и не указана программа askpass ».
0
15.12.2016, 07:51
2 ответа

Похоже, проблема в том, что вы запускаете в фоновом режиме весь процесс sudo , и он не может запросить пароль.

Вы можете:

  • sudo запустить что-то еще и дать ему пароль, за которым следует ваша команда (в зависимости от конфигурации sudo) или
  • настроить sudo (через visudo ), чтобы разрешите вашему пользователю / группе запускать команды sudo без пароля: % wheel ALL = (ALL) NOPASSWD: ALL

Второе - гораздо более разумное решение, хотя, очевидно, есть много других решений, но оно поможет много, если вы объясните свою основную потребность.

1
28.01.2020, 02:34

Думаю, вам лучше поместить параметры в /etc/sysfs.conf

См.

https://serverfault.com/questions/373624/suggestions-for-making-sysfs-parameters-persist-across-reboots

1
28.01.2020, 02:34

Теги

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