首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >永久应用proc/acpi/wakeup设置

永久应用proc/acpi/wakeup设置
EN

Ask Ubuntu用户
提问于 2019-05-26 08:38:24
回答 2查看 1.2K关注 0票数 1

这是真的吗,为了使设置在Linux系统中永久化,批处理脚本方式是标准的?

今天,我发现自己检查计算机唤醒设置在重新启动计算机后被重置。我开始搜索Google,我需要设置一个批处理脚本,以便这些更改能够持久存在。现在,这种建议在这类“罕见的配置”中是普遍的。这让我非常紧张,因为没有人谈论任何配置或负责唤醒功能的软件,相反,一些看似廉价的批处理脚本解决方案被抛入其中,这些解决方案应该设置计算机启动时的设置。

是否必须设置批处理脚本,并且在/etc/或任何其他文件夹中没有用于唤醒的配置来设置关闭或重新启动后保存的永久更改?

我正在提供更多信息:

代码语言:javascript
复制
naudotojas@naudotojas-N53SV:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 19.04
Release:    19.04
Codename:   disco
naudotojas@naudotojas-N53SV:~$ 

我希望在重新启动Ubuntu之后禁用的These设置,也就是保持永久状态:

代码语言:javascript
复制
naudotojas@naudotojas-N53SV:~$ cat /proc/acpi/wakeup | grep enabled
EHC1      S3    *enabled   pci:0000:00:1d.0
EHC2      S3    *enabled   pci:0000:00:1a.0
XHCI      S3    *enabled   pci:0000:04:00.0

<#>This是我希望在重新启动后看到的最后结果:

代码语言:javascript
复制
EHC1      S3    *disabled   pci:0000:00:1d.0
EHC2      S3    *disabled   pci:0000:00:1a.0
XHCI      S3    *disabled   pci:0000:04:00.0
EN

回答 2

Ask Ubuntu用户

发布于 2021-02-15 15:39:13

这样做的首选方法是使用systemd创建一个service。在rc.local中添加脚本是不推荐的方式。

  1. 在任何地方创建脚本文件。例:~/scripts/disable-devices-as-wakeup.sh.
代码语言:javascript
复制
#!/bin/bash

declare -a devices=(EHC1 EHC2 XHCI) # <-- Add your entries here
for device in "${devices[@]}"; do
    if grep -qw ^$device.*enabled /proc/acpi/wakeup; then
        sudo sh -c "echo $device > /proc/acpi/wakeup"
    fi
done
  1. 通过从终端执行它来测试它。
  2. 如果一切都还好,那就来做个服务吧。
代码语言:javascript
复制
$ touch ~/scripts/disable-devices-as-wakeup.service

~/脚本/禁用-设备即唤醒服务-

代码语言:javascript
复制
[Unit]
Description=Disable devices as wakeup

[Service]
ExecStart=/home/username/scripts/disable-devices-as-wakeup.sh
Type=oneshot

[Install]
WantedBy=multi-user.target
  1. 将服务复制或移动到/etc/systemd/system/
代码语言:javascript
复制
$ sudo cp ~/scripts/disable-devices-as-wakeup.service /etc/systemd/system/
  1. 启用服务。
代码语言:javascript
复制
$ systemctl enable disable-devices-as-wakeup.service
  1. 重新启动操作系统并检查状态。
代码语言:javascript
复制
$ systemctl status disable-devices-as-wakeup.service

https://access.redhat.com/documentation/en-us/red_帽子_企业_linux/7/html/system_管理员_指南/章-管理_服务_使用_系统d上找到详细的解释

票数 1
EN

Ask Ubuntu用户

发布于 2021-04-15 20:38:34

非常感谢你的解释,希希凯什。我在我的系统里用过这个。虽然代码中有一个小错误。我不是一个程序员,但其他人指出了这一点。因此,供其他人参考。第一行中不应该有引号。它应该是:

代码语言:javascript
复制
#!/bin/bash
declare -a devices=( LID0 XHC1 )
for device in "${devices[@]}"; do
    if grep -qw ^$device.*disabled /proc/acpi/wakeup; then
        sudo sh -c "echo $device > /proc/acpi/wakeup"
    fi
done

或者“启用”就是你想要达到的目标。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1146264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档