You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让限制LG笔记本电池充电阈值的命令在开机时自动执行?

如何让限制LG笔记本电池充电阈值的命令在开机时自动执行?

首先得搞清楚你之前用crontab失败的核心原因——权限和命令执行上下文的问题。你试的那些写法里,比如@reboot sudo echo 80 > /sys/...,这里的重定向符号>是由crontab以你的普通用户身份执行的,而你没有写入/sys/devices/platform/lg-laptop/battery_care_limit这个sysfs节点的权限,哪怕前面加了sudo,sudo只作用于echo命令,重定向还是用普通用户权限,所以肯定失败。

下面给你两个靠谱的解决办法,选哪个都行:

方法一:修复crontab的命令写法

首先要让sudo能无密码执行这个命令(不然开机时crontab没法输入密码),步骤如下:

  1. 运行sudo visudo打开sudoers配置文件(别直接用编辑器改,避免语法错误锁死权限)
  2. 在文件末尾添加一行(把yourusername换成你的实际用户名):
yourusername ALL=(ALL) NOPASSWD: /bin/bash -c "echo 80 > /sys/devices/platform/lg-laptop/battery_care_limit"
  1. 保存退出后,修改你的crontab(crontab -e),把命令改成:
@reboot sudo bash -c "echo 80 > /sys/devices/platform/lg-laptop/battery_care_limit"

或者用你原本手动有效的tee写法,同样要确保sudo无密码:

@reboot echo 80 | sudo tee /sys/devices/platform/lg-laptop/battery_care_limit

这样crontab开机执行时,整个命令(包括重定向)都会以root权限运行,就能成功写入阈值了。

方法二:用systemd服务(更稳定可靠)

systemd可以更精准控制服务启动时机,确保sysfs节点已经加载完成,适合这类硬件相关的开机任务:

  1. 创建一个systemd服务文件:
sudo nano /etc/systemd/system/lg-battery-care.service
  1. 粘贴以下内容:
[Unit]
Description=设置LG笔记本电池充电上限为80%
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c "echo 80 > /sys/devices/platform/lg-laptop/battery_care_limit"
User=root

[Install]
WantedBy=multi-user.target
  1. 保存退出后,刷新systemd配置并启用服务:
sudo systemctl daemon-reload
sudo systemctl enable lg-battery-care.service

这样下次开机时,systemd会自动以root身份执行这个命令,完全不用依赖crontab,稳定性更高。

你可以先试方法一,要是觉得crontab麻烦,直接用systemd的方法更省心~

备注:内容来源于stack exchange,提问作者elwood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:04:06