rsync
バックアップが完了したことを確認し、完了するとマイコンピュータを休止状態にする小さなスクリプトがあります。
これはWSL(Debian)にあります。
#!/bin/bash
# if rsync is running, then wait 5
while ps aux | grep -q -e "[r]s";
do
sleep 5
echo "script running..."
done
# sleep PC
psshutdown64.exe -d -t 0
WSLウィンドウで実行すると正常に動作します。
スクリプトが実行されている場合は待って終了すると、rsync
コンピュータはスリープ状態になります。
script running...
script running...
script running...
script running...
PsShutdown v2.53 - Shutdown, logoff and power manage local and remote systems
Copyright (C) 1999-2021 Mark Russinovich
Sysinternals - www.sysinternals.com
同じスクリプトを実行するためにWindowsショートカットを作成しようとしています。
ショートカットを実行してもループは終了しません。眠れない人も現れますね
。script running...
bash.exe -c
、、、wsl.exe
およびスクリプトを起動しようとしましたdebian.exe
。 誰も働かなかった。powershell.exe
興味深いことに、cmdまたはPowershellウィンドウでスクリプトを実行すると正常に動作します。
wsl sh sleep.sh
PsShutdown v2.53 - Shutdown, logoff and power manage local and remote systems
Copyright (C) 1999-2021 Mark Russinovich
Sysinternals - www.sysinternals.com
しかし、ショートカットを使って実行すると失敗します。
編集:スクリプトはDocuments
。
答え1
他の人に役立つかと答えて投稿しています。
質問に直接答えることはありませんが、目的の結果を得ます。
- スクリプトへのシンボリックリンクの作成
home
- Windowsショートカットを作成します。
C:\Windows\System32\wsl.exe sh ~/sleep.sh