Вот более простой способ подойти к этому...
Мы пытаемся имитировать вашу учетную запись обычного пользователя, выдающую эту команду (, предполагая, что вы следовали рекомендациям No -IP по установке )...
sudo noip2
Причина, по которой ваша учетная запись обычного пользователя (вместо вашего суперпользователя )должна выполнять эту команду, заключается в том, что ваша учетная запись обычного пользователя имеет некоторый -IP -специфический материал, к которому необходимо получить доступ при выдаче эта команда. Таким образом, чтобы имитировать ввод указанной выше команды в качестве обычной учетной записи пользователя с повышенными привилегиями при запуске, выполните следующие действия...
Отредактируйте crontab вашего суперпользователя, введя эту команду...
sudo crontab -e (choose your favorite text editor if prompted)
Добавьте эту строку внизу файла...
@reboot su -l <regular account username> && sudo noip2
Сохраните файл и перезагрузите систему. Вы обнаружите, что noip2 был запущен правильно.
Вам просто нужно выполнить соответствующую аутентификацию. По умолчанию sudo
удаляет из среды все несущественные -переменные и устанавливает HOME
для целевого пользователя, но в этом случае вам нужно вернуть одну или две из них обратно:
sudo HOME="$HOME" psensor …
Если этого недостаточно, попробуйте
sudo HOME="$HOME" DISPLAY="$DISPLAY" psensor …
Обратите внимание, что это позволит root
записывать в ваш домашний каталог, как если бы он был его собственным. Иногда это приводит к тому, что файлы, принадлежащие root -, (или, что еще хуже, каталоги )в вашем собственном каталоге, к которым вы не можете получить прямой доступ или удалить. Если это неприемлемо, попробуйте один из этих более длинных -запутанных вариантов
sudo bash -c "cp -p $HOME/.Xauthority ~ && psensor …"
sudo DISPLAY="$DISPLAY" bash -c "cp -p $HOME/.Xauthority ~ && psensor …"