Ven*_*nem 3 battery scripts laptop power-management
我正在遵循 LessWatts 的建议,使用以下命令降低电池消耗:
mount -o remount,noatime /
hdparm -B 1 -S 12 /dev/sda
echo 3000 > /proc/sys/vm/dirty_writeback_centisecs
iwconfig wlan0 power on
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
Run Code Online (Sandbox Code Playgroud)
问题是,如何将它们设置为在系统启动时自动启动?
我相信您可以使用 /etc/rc.local 作为根引导脚本。
首先将所有命令复制到一个文本文件中,然后在文件顶部附加以下行:
#!/bin/bash
Run Code Online (Sandbox Code Playgroud)
然后将其保存在某个地方,也许是您的家庭目录。( /home/user/battery-script.sh )
然后在终端中使其可执行:
$ chmod +x /home/user/battery-script.sh
Run Code Online (Sandbox Code Playgroud)
现在在终端:
$ gksudo gedit /etc/rc.local
Run Code Online (Sandbox Code Playgroud)
现在在该行之前exit 0写入脚本的路径。( /home/user/battery-script.sh ) 确保exit 0在其他一切之后,否则它会在执行命令之前退出。
现在只是为了确定脚本何时运行,您可能需要添加一个 xmessage 命令,以便在运行时弹出一条消息。
xmessage -center "Battery script run in /etc/rc.local"
Run Code Online (Sandbox Code Playgroud)
确保它在exit 0.
现在,重新启动以测试以确保它在启动时运行,如果满意,则可以删除 xmessage 行。
如果由于某种原因这不起作用,您可以回退到 GNOME 的自动启动管理器。它涉及编辑 sudoers 文件以允许 root 访问您的脚本而无需密码。我们将编辑文件的权限和所有权,以免造成安全漏洞。
首先,将整个脚本移动到 /bin/ 文件夹中:
$ sudo mv battery-script.sh /bin/
Run Code Online (Sandbox Code Playgroud)
设置 root 所有权和权限,防止普通用户插入以 root 身份运行的恶意代码:
$ sudo chown root /bin/battery-script.sh
$ sudo chgrp root /bin/battery-script.sh
$ sudo chmod 555 /bin/battery-script.sh
Run Code Online (Sandbox Code Playgroud)
现在已经设置好了,是时候编辑 sudoers 文件了:
$ gksudo gedit /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
转到底部并添加此行。将$USER替换为您的用户名
$USER ALL = NOPASSWD:/bin/battery-script.sh
Run Code Online (Sandbox Code Playgroud)
现在,您可以在使用 sudo 时无需密码即可运行脚本。
接下来,打开启动应用程序,单击添加。将任何内容放在名称下,然后在命令下放置:
sudo /bin/battery-script.sh
Run Code Online (Sandbox Code Playgroud)
就是这样!启动时,您的脚本将以 root 身份运行,您可以在 battery-script.sh 中添加一行echo > /home/user/it_works.txt(替换为用户名),该文件将在下次启动时创建,因此您可以确保它正常工作,或者如前所述,你可以使用xmessage。
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |