Bra*_*don 8 startup root lubuntu
我需要在启动时(在 Lubunt 上)在终端myscript.py中运行 python 脚本。这个脚本需要root。
我已经设置了一个.desktop运行以下命令的文件:
lxterminal --command="python /home/d/Jarvis/alarm.py && /bin/bash"
Run Code Online (Sandbox Code Playgroud)
终端窗口在启动时打开并运行脚本,但在 Python 脚本返回错误时关闭(因为它不是以 root 身份运行)。当我将其更改Exec=为...
lxterminal --command="sudo python /home/d/Jarvis/alarm.py && /bin/bash"
Run Code Online (Sandbox Code Playgroud)
...(以 为前缀的命令sudo)有效。但是,终端在启动时打开并显示
[sudo] password for d: \
Run Code Online (Sandbox Code Playgroud)
提示,要求我输入密码。我希望 python 脚本在启动时完全自动执行,无需用户交互。
我怎样才能做到这一点?
在启动时以 root 身份执行的自定义脚本可以通过rc.local.
/etc/rc.local使用 root 权限编辑:
sudo nano /etc/rc.local
Run Code Online (Sandbox Code Playgroud)
并把线
python /home/d/Jarvis/alarm.py
Run Code Online (Sandbox Code Playgroud)
就在最后一行之前,应该说exit 0. 重新启动以查看它是否有效。
如果你想在登录而不是启动时使用它(因为我不知道如何在没有 X 服务器启动的情况下打开 LXTerminal),你必须在 /etc/sudoers 文件中添加一个例外,这样你就不会被提示你的密码。
为此,请运行sudo visudo并添加以下内容:
<your username> ALL = NOPASSWD: /home/d/Jarvis/alarm.py
Run Code Online (Sandbox Code Playgroud)
确保在文件末尾添加它以使其正常工作。我还将设置alarm.py为可执行文件的权限以使其正常工作。因此,执行此操作以将其设置为可执行文件:
chmod +x /home/d/Jarvis/alarm.py
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
14528 次 |
| 最近记录: |