我安装了一个名为thinkpad-scripts的软件包。简单地说,它的一堆脚本激活了linux上thinkpad设备上的各种功能,而这些功能在新安装时是无法发挥作用的。
我有脚本等工作,但每当我重新启动我的机器。当我的笔记本电脑转换为平板模式时,自动旋转功能不起作用。我注意到罪魁祸首与acpid有关。当我在终端中重新启动acpid时,它再次工作。是否有一种方法可以在重新启动时自动重新启动acpid,这样我就不必一而再、再而三地这样做了吗?
我在运行64位Debian
编辑:我试过用crontab -e制作一个cron作业
在我的文件末尾写,在结尾留下一条换行符
@reboot sh $HOME/acpid_restart.sh
脚本acpid_restart.sh包括
#!/bin/sh
systemctl restart acpid但这还是失败了..。
发布于 2019-07-14 05:34:27
首先,确保acpid.service实际上是在引导期间启动的。主机重新启动后,使用此命令验证:
# systemctl status acpid.service应该说是started和enabled。如果没有,那么systemctl enable acpid.service可能会通过在重新启动时实际启动服务来解决问题。
第二,如果服务在引导期间实际启动,那么检查日志,看看它是否有问题。您应该已经从systemctl status输出中的日志中看到了一些行,然后您可以使用以下方法从该服务获得更多日志:
# journalctl -u acpid.service您还可以查看上次重新启动后的所有日志,使用:
# journalctl -b这可能会显示出与您正在经历的问题相关的其他问题。
如果结果是acpid.service在引导过程中实际启动,并且屏幕旋转在重新启动之前无法工作,那么很可能它在引导过程中启动得太早,这就是导致它在重新启动之前出现错误行为的原因。希望,如果是这样的话,日志可能会为您提供更多的细节,从而使您能够解决这个问题。
(如果您通过这个建议进行故障排除,请发布更新,如果您能够更具体地了解所见的症状,我很乐意给出更多的提示。)
最后,使用cron来管理systemd服务很可能不像预期的那样有效。
如果您确实希望在启动后的某个时候强制服务重新启动,那么使用systemd计时器是一种更好的方法。您可以在启动时禁用服务,并在系统启动一段时间后使用计时器单元实际启动它,或者在启动时继续启用它,并使用计时器单元触发单独的服务单元(也许是restart-acpid.service?)它使用Type=oneshot并执行/usr/bin/systemctl restart acpid.service命令(或者包装器脚本,它基本上是这样做的)。
然而,这是相当讨厌的。所以我建议你通过找到真正的原因来解决真正的问题,而不是投资于这样一个笨重的解决方法。
https://unix.stackexchange.com/questions/530036
复制相似问题