我需要在启动时使用 sudo 运行一个脚本,该脚本会保留该脚本所做的更改

我需要在启动时使用 sudo 运行一个脚本,该脚本会保留该脚本所做的更改

我需要一个在启动时以 sudo 权限运行的脚本,该脚本可以更改 GPU 功率限制,并在计算机开启时保持 GPU 功率限制设置。计算机完全启动后,功率限制将重置为出厂默认值。

看到这个之后,/etc我尝试把脚本放进去rc.local问答,它会将功率限制设置为我想要的值,但只持续大约两秒钟。如果我在启动过程中按 esc,我可以看到脚本正在设置 GPU 功率限制,但在计算机完全启动后,我打开终端并输入nvidia-smi以查看功率上限,它们会恢复为出厂默认值,就好像我的脚本从未运行过一样。

我的脚本的内容...

#!/bin/sh -e

sudo nvidia-smi -i 0 -pl 250
sudo nvidia-smi -i 1 -pl 289
sudo nvidia-smi -i 2 -pl 244
sudo nvidia-smi -i 3 -pl 260
exit 0

我可以在启动后使用sudo ./script.sh命令行手动运行此脚本,它会执行我想要的操作,但我需要它在我不在输入密码时自动运行。可以nvidia-smi让它运行而无需sudo

systemd我也尝试使用接受的答案运行脚本这里,但没有效果。

Unit]
Description=Spark service

[Service]
ExecStart=/path/to/spark/all.sh

[Install]
WantedBy=multi-user.target


chmod u+x /path/to/all.sh
Start it:

sudo systemctl start myfirst
Enable it to run at boot:

sudo systemctl enable myfirst

我确信这也是在运行脚本,因为我在脚本中设置了 20 秒的睡眠时间,并且启动需要额外 20 秒,但同样,计算机启动时没有改变任何功率限制。

相关内容