我正在尝试以 root 身份运行 Pipenv python 实例。不以 root 身份运行时:
(myenv) $ python script.py
Run Code Online (Sandbox Code Playgroud)
正确使用了 Pipenv python。但是,当以 root 身份运行时sudo:
(myenv) $ sudo python script.py
Run Code Online (Sandbox Code Playgroud)
使用系统默认 python at/usr/bin/python代替。经过一番搜索,我找到了-Esudo 选项。然而,随着
(myenv) $ sudo -E python script.py
Run Code Online (Sandbox Code Playgroud)
它仍然使用/usr/bin/python,即使sudo -E echo $PATH给出与 相同echo $PATH,所以该-E选项工作正常;然而,sudo -E which python继续给/usr/bin/python!这不是权限或访问问题,因为 Pipenv python 的完整路径工作正常。为什么即使$PATH设置正确却使用了错误的二进制文件?
我已经检查了几个教程,但是在启动操作系统时我无法运行我的脚本。我已经把文件放在 /etc/init.d , /boot, /bin, /urs/bin 中。我想我已经把它放在了每一个可能的地方。这是我的代码。
#!/bin/bash
echo "Starting command to put resolution on 1920x1080"
echo "Password_of_sudo" | sudo -S xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync &&
sudo xrandr --addmode Virtual1 1920x1080_60.00 &&
sudo xrandr --output Virtual1 --mode 1920x1080_60.00
echo "Finished.
Run Code Online (Sandbox Code Playgroud)
注意:在 VM 中运行。它在手动启动时工作,问题是我不想手动运行我希望它在系统加载时启动。