每次启动时运行 rmmod 和 modprobe 的替代方案

每次启动时运行 rmmod 和 modprobe 的替代方案

除非我手动运行,否则我的触摸板无法正确识别

rmmod psmouse
modprobe psmouse

每次启动时。肯定有更好的方法吧?

笔记:这个问题似乎相关,但在这种情况下,添加特定设置即可解决问题。在我的例子中,没有额外的参数可以添加。

答案1

添加到/etc/modules,每行一个模块。

答案2

在 Ubuntu 16.04 之前的版本中,人们可以简单地将这些行添加到文件中/etc/rc.local,然后启动服务就会获取它。

从那时起,systemd 仅提供启动此文件作为向后兼容性离合器。Unix.SE 问题如何为 SystemD 编写启动脚本?很好地总结了如何实现“在登录之前,在启动过程中只运行一次脚本”。

问题显示了更多选项,但对于只有 1-2 行的简单情况,可以这样写:

  1. /etc/systemd/system在文件夹中创建一个名为 的文件<name-of-your-service>.service
    我选择了fix-touchpad.service

  2. 用以下内容填充它。实际的有效载荷在行中ExecStart作为参数传递给/bin/sh

# /etc/systemd/system/fix-touchpad.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "rmmod psmouse && modprobe psmouse"

[Install]
WantedBy=multi-user.target
  1. 重新启动系统。
  2. 使用以下命令检查新服务的状态sudo systemctl status fix-touchpad.service
    Loaded: loaded (/etc/systemd/system/fix-touchpad.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2021-11-01 10:29:19 CET; 31min ago
   Main PID: 654 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4504)
     Memory: 0B
        CPU: 0
     CGroup: /system.slice/fix-touchpad.service

Nov 01 10:29:19 my-machine systemd[1]: Starting fix-touchpad.service...
Nov 01 10:29:19 my-machine systemd[1]: Finished fix-touchpad.service.

相关内容