有沒有辦法在重啟時重啟 acpid?
我已經安裝了一個名為
thinkpad-scripts
. 簡單地說,它是一堆腳本,可以啟動 Linux 上 thinkpad 設備上的各種功能,而這些腳本在全新安裝時無法開箱即用。我已經讓腳本工作等等,但是每當我重新啟動我的機器時。將我的筆記型電腦轉換為平板電腦模式時,自動旋轉功能不起作用。我注意到罪魁禍首與
acpid
. 當我acpid
在終端重新啟動時,它再次工作。有沒有一種方法可以acpid
在我重新啟動時自動重新啟動,這樣我就不必一遍又一遍地進行繁瑣的操作?我正在執行 64 位 Debian
編輯:我試著用
crontab -e
並在我的文件末尾寫了一個換行符
@reboot sh $HOME/acpid_restart.sh
該腳本
acpid_restart.sh
包括#!/bin/sh systemctl restart acpid
但這仍然失敗….
首先,確保在引導期間
acpid.service
實際上正在啟動。主機重新啟動後,使用此命令驗證:# systemctl status acpid.service
它應該說
started
andenabled
。如果沒有,那麼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
命令(或本質上相同的包裝腳本。)但是,這很hacky。因此,我建議您實際上嘗試通過找到根本原因來解決真正的問題,而不是投資於這種笨拙的解決方法。