我需要在终端中运行一个 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 脚本的执行完全自动,无需用户交互。
我怎样才能做到这一点?
答案1
可以通过 运行以 root 身份启动时执行的自定义脚本rc.local
。
/etc/rc.local
使用root权限编辑:
sudo nano /etc/rc.local
并把线
python /home/d/Jarvis/alarm.py
就在最后一行之前,应该写着exit 0
。重新启动以查看它是否有效。
答案2
如果您希望在登录时而不是启动时使用它(因为我不知道如何在 X 服务器未启动的情况下打开 LXTerminal),您必须在 /etc/sudoers 文件中添加一个例外,这样就不会提示您输入密码。
为此,运行sudo visudo
然后添加以下内容:
<your username> ALL = NOPASSWD: /home/d/Jarvis/alarm.py
确保将此添加到文件末尾以使其正常工作。我还会将权限设置alarm.py
为可执行文件以使其正常工作。因此,请执行以下操作将其设置为可执行文件:
chmod +x /home/d/Jarvis/alarm.py
希望能帮助到你!