起動時にCronを介して独自のスクリプト(openMonitor.sh)を実行しようとしています。このスクリプトはFirefoxでローカルのHTMLファイルを開き、F11をシミュレートしてフルスクリーンに切り替えます。
#!/bin/bash
sleep 10;
export DISPLAY=:0.0 &&
export XAUTHORITY=/home/pi/.xauthority &&
now=$(date +"%T")
echo "script run at "+$now >> /home/pi/monitor/run.log
/usr/bin/firefox --url /home/pi/monitor/monitor.html &
sleep 10;
xdotool key F11
スクリプトは私のRaspberryPi2 Raspbian Jessieのcrontabにリストされています。
@reboot /home/pi/monitor/./openMonitor.sh
正常に起動すると、htmlファイルが開きますが、Firefoxはフルスクリーンに切り替えられません。ログインしたユーザーとしてスクリプトを実行している場合にのみ機能します。
crontabには「最小」環境があり、DISPLAYまたはXAUTHORITY環境が設定されていない(したがってXサーバーにアクセスできないため)、接続されているモニターでxdotoolを実行するのに問題がある可能性があります。この問題をどのように解決しますか?
答え1
問題は、DISPLAY
環境がまだ設定されていないことではなく、ディスプレイがまだ存在しない可能性があることです。下痢が存在しても(クローンジョブとGUI実行の間に競合状態がある)、ディスプレイが存在しない可能性があります。使用できる権限があります。まず、GUIにログインする必要があります。
@reboot
crontabのエントリは、ログインセッションとは無関係に実行される操作のためのものです。コンソールに一部のコンテンツを表示するには、ログインセッションが必要です。
代わりに、pi
ユーザーの自動ログインを有効にしてください。次から始めることができますraspi-config
(参照https://raspberrypi.stackexchange.com/questions/47823/how-to-prevent-autologin-of-gui)。次に、スクリプト(Firefoxの起動とウィンドウの最大化)をユーザーのログインスクリプト。 LXDEインターフェースを使用している場合は、自動開始リストに項目を追加できます。起動時にスクリプトを実行する(このページの多くの回答はGUIプログラムには適用されません。)