web-dev-qa-db-ja.com

再起動時にacpidを再起動する方法はありますか?

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

しかし、これはまだ失敗します..。

2
PrimRock

まず、起動中に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コマンド(または本質的に同じことを行うラッパースクリプト)を実行します。

しかし、それはかなりハッキーです。したがって、このような不格好な回避策に投資するのではなく、根本原因を見つけることによって実際に問題に対処することをお勧めします。

1
filbranden