「xautolock」を使用してスクリプトを実行し、ロックを解除した後、「ffmpeg」を使用して画像をキャプチャします。

「xautolock」を使用してスクリプトを実行し、ロックを解除した後、「ffmpeg」を使用して画像をキャプチャします。

使用していますが、i3wm画面のロックを解除した後にスクリプトを実行したいと思います。次の手順を使用して、画面を手動でロックしたときに機能させることができました。 この投稿

ただし、画面が自動的にロック解除された後は機能しませんxautolock。たとえば、次のようになります。

xautolock -time 5 -locker "blurlock -n && my_script.sh"

動作しません。 5分後に画面はロックされますが、ロック解除後にスクリプトは実行されません。実際にはまったく実行されていないようです。

動作させる方法はありますか?おそらく使用するかxss-lock似ていますか?

編集する

コメントで@aviroの提案に従ってスクリプトを次のように変更しました。

#!/usr/bin/bash
echo "Hello" >> $HOME/temp.txt
blurlock -n
echo "Unlocked" >> $HOME/temp.txt

そして彼は逃げたxautolock -time 1 -locker "my_script.sh &"。画面ロック、ファイルにはtemp.txtスクリプトに2行が含まれています。したがってxautolock

スクリプトを介して実行しようとしているタスクの中には、ffmpegスクリプトを次のように変更しました。

#!/usr/bin/bash
blurlock -n 
ffmpeg -f video4linux2 -s vga -i /dev/video-cam $HOME/Pictures/test.jpg 
notify-send -t 30000  'Unlocked'

これは手動で実行すると機能します。画面がロックされていてロックが解除されると、「ロック解除済み」という通知がポップアップし、Webカメラの画像が指定されたとおりにファイルに記録されます。

ただし、ランタイムによるロックxautolock -locker "my_script.sh"解除後は、画像のキャプチャや通知はありません。端末で実行していてxautolockバックグラウンドで送信しているため、&次のメッセージが表示されます。

[1]  + 581665 suspended (tty output)  xautolock -time 1 -locker "my_script.sh"

コマンド> /dev/null 2>&1に追加しても役に立ちません。ffmpeg

答え1

多くの実験の最後にコマンドnohupの前に使用するとffmpeg効果があると確信しています。つまり、上記の行はmy_script.sh次のように変更する必要があります。

nohup ffmpeg -f video4linux2 -s vga -i /dev/video-cam $HOME/Pictures/test.jpg > /dev/null 2>&1

関連情報