Мне нужно запустить скрипт Python в терминале, myscript.py при запуске (на Lubunt). Этот скрипт требует root.
Я установил файл .desktop
, который выполняет следующую команду:
lxterminal --command="python /home/d/Jarvis/alarm.py && /bin/bash"
Окно терминала открывается при запуске и запускает скрипт, но затем закрывается, когда скрипт Python возвращает ошибку ( потому что он не запускается как root). Когда я изменяю Exec=
на это ...
lxterminal --command="sudo python /home/d/Jarvis/alarm.py && /bin/bash"
... (префикс команды с sudo
), который работает. Однако , терминал открывается при запуске и отображает приглашение
[sudo] password for d: \
, требующее от меня ввода пароля. Я хотел бы, чтобы выполнение скрипта python при запуске было полностью автоматическим без вмешательства пользователя.
Как мне это сделать?
Пользовательские сценарии, которые запускаются при запуске от имени пользователя root, можно запустить через rc.local
.
Отредактируйте /etc/rc.local
с правами root:
sudo nano /etc/rc.local
и поместите строку
python /home/d/Jarvis/alarm.py
непосредственно перед последней строкой, которая должна сказать exit 0
. Перезагрузитесь, чтобы увидеть, сработало ли это.
Если вы хотите, чтобы это происходило при входе в систему, а не при запуске (поскольку я не вижу, как можно открыть LXTerminal без запуска X-сервера), вам нужно добавить исключение в файл / etc / sudoers, чтобы вы не стали вам будет предложено ввести пароль.
Для этого запустите sudo visudo
, а затем добавьте следующее:
<your username> ALL = NOPASSWD: /home/d/Jarvis/alarm.py
Убедитесь, что вы добавили это в конец файла, чтобы это работало. Я бы также установил права на alarm.py
для исполняемого файла, чтобы это работало. Итак, сделайте это, чтобы установить его как исполняемый файл:
chmod +x /home/d/Jarvis/alarm.py
Надеюсь, это поможет!