
Folding@Homeをインストールして設定しました。
$ lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
$ FAHClient --version
7.5.1
$ cat /etc/fahclient/config.xml
<config>
<!-- Network -->
<proxy v=':8080'/>
<!-- Slot Control -->
<idle v='true'/>
<power v='FULL'/>
<!-- User Information -->
<team v='[omitted]'/>
<user v='[omitted]'/>
<!-- Folding Slots -->
<slot id='0' type='CPU'/>
<slot id='1' type='GPU'/>
</config>
ただし、サービスを開始した後、処理は開始されません。切り替えると顧客idle
設定すぐに処理が始まりましたが、設定を途中まで下げてもpower
他の作業はほとんど不可能でした。Folding@Home このマシンがアイドル状態のときにのみ動作するようにするにはどうすればよいですか?つまり、人の介入なしに数分間アイドル時間が経過したら、処理を開始し、アイドル状態にならなくなったらすぐに処理を停止する必要があります。
答え1
私も同じ問題があります。クライアントは、私のコンピュータがアイドル状態だとは思わない。結局、画面がロックされている場合にのみFAHを復元するスクリプトを作成しました。効果はとても良いです。ここで見ることができます:
https://github.com/Madoshakalaka/gnome-folding-at-screenlock
リポジトリがダウンしたときにリポジトリが正常に動作するようにするための全体的な手順は次のとおりです。
- このサービスファイルを次の場所にコピーします。
/home/YOUR_DESTOP_USER/.config/systemd/user/gnome-folding-at-screenlock.service
[Unit]
Description=FAH controller based on screen locking/unlocking signals
[Service]
ExecStart=/usr/bin/gnome-folding-at-screenlock.sh
[Install]
WantedBy=default.target
- このシェルスクリプトをあなたのスクリプトにコピーし、
/usr/bin/gnome-folding-at-screenlock.sh
実行権限を与えますsudo chmod +x /usr/bin/gnome-folding-at-screenlock.sh
。
#!/usr/bin/env sh
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" |
# Somehow I receive duplicate signals during locking and unlocking.
# It's a weird behavior but does no harm in our case.
while read x; do
case "$x" in
"boolean true")
echo "screen turns locked. Initiate folding" && FAHClient --send-unpause ;;
"boolean false") echo "screen turns unlocked. Unfold! Unfold!" && FAHClient --send-pause ;;
*) ;;
esac
done
sudo systemctl enable foldingathome && sudo systemctl start foldingathome
まだそうしなかったら。スクリプトはfoldingathome
サービスを開始または停止しません。サービスが開始され、一時停止/一時停止解除によって縮小されたとしますFAHClient
。一時停止または一時停止解除は、現在のプロファイルに残ります/etc/foldingathome/config.xml
。- ブラウザのダッシュボードに移動していくつかの
http://localhost:7396/
オプションを変更してください。もはやFAHのアイドル検出に依存しないので、「作業中」オプションを選択する必要があります。また、理想的な電力レベルを設定できます。最後に、「折りたたみを停止」ボタンをクリックして折りたたみを停止します。これにより、実際に<paused v='true'>
プロファイルにラベルが追加されます(ディスプレイを起動したときにスクリプトが実行する操作とまったく同じです)。 systemctl --user enable gnome-folding-at-screenlock.service
。ロックとロック解除はデスクトップユーザーに接続されているため、rootとして実行したり、sudoを使用したりしないでください。systemctl --user start gnome-folding-at-screenlock.service
。 rootとして実行したり、sudoを使用しないでください。- 完璧!今、あなたのコンピュータの場所を空にするたびにsuper+を押して画面をロックします。lたんぱく質がすぐに折り始めます!戻ってコンピュータのロックを解除すると、折りたたみはすぐに一時停止します!
- ボーナスポイントを獲得するには、GNOMEに移動して
Settings > Power
自動一時停止をオフにします。それ以外の場合、拡張縮小は機能しません。デフォルトでは、20分間アクティビティがないと一時停止し、FAHも停止します。
答え2
答えからインスピレーションを得た迅速で汚い解決策は次のとおりです。https://unix.stackexchange.com/a/259963。
#!/bin/bash
let TIMEOUT_MINUTES=5
let TIMEOUT_MS=TIMEOUT_MINUTES*60000
while [ 0 ]
do
IDLE=$(xprintidle)
if [ $IDLE -lt $TIMEOUT_MS ]
then
FAHClient --send-pause
else
FAHClient --send-unpause
fi
sleep 15
done
TIMEOUT_MINUTES
値を必要に応じて変更sleep
し、ログイン時に起動するように設定します。
xprintidle
Fedora 37を実行するときと同じように、リポジトリにない場合はソースからビルドできます(次の場所で利用可能)。https://github.com/g0hl1n/xprintidle)。