毎日(例:真夜中)期限切れのシステムユーザータイマーを作成しました。問題は、私のコンピュータが通常夜に一時停止することです。朝起きるとタイマーが動作することを期待しますが、そのようなことは起こりません。 「永続的」オプションが見つかりましたが、これはサービスの開始時に期限切れのタイマーをトリガーするため、システムがシャットダウンしたときにのみ役立ちます。時間ごとのタイマーを実行し、タイムスタンプをいくつかのファイルに保存する以外に、他の解決策はありますか?
2017-03-17 編集:Ubuntu 16.10でsystemd 231を使用しています。私が欲しいのは走るんだ思い出させる1日に1回、好ましくは朝にコンピュータを目覚めさせるときです。
答え1
WakeSystem=true
1つのオプションはファイルに設定することです.timer
。これにより、コンピュータを一時停止状態で起きてタスクを実行できます。
.service
その後、実行しているファイルに以下を追加できます。
ExecStopPost=sudo /bin/systemctl suspend
ジョブの実行が完了したら、コンピュータを再び一時停止します。
/etc/sudoers
また、ユーザーがパスワードなしで上記のコマンドを実行できるように更新する必要があります。
man systemd.timer
2番目のオプションは、で説明したものと同様の鍛造タイマーの1つを使用することですOnActiveSec=
。このタイマーは、コンピュータが停止すると停止します。これにより、「8時間ごとに自分のコンピュータをバックアップしてください」と言うことができます。コンピュータが通常1日に約8時間実行される場合、これは1日に1回程度に相当します。説明したように、コンピュータは真夜中にバックアップされることがよくあります。朝初めてコンピュータの一時停止を解除すると、バックアップされます。
第三に、デバイスの電源を切ってもデバイスがPersistent=
正しく動作しないことを確認しましたか?suspend
答え2
オプションと停止には問題がないようですPersistent
。問題は、これはPersistent=true
タイマーが少なくとも一度は実行する機会がある場合にのみ機能することです。最後いいえ該当なし。しかし、私のコンピュータは通常真夜中に一時停止するため、タイマーは機能しません。