XRandRスクリプトがコマンドラインで正しく実行され、cronジョブで失敗する

XRandRスクリプトがコマンドラインで正しく実行され、cronジョブで失敗する

私はFedora 21でLXDEを実行しています。私のスクリプトの目的は、2つのモニタにわたってディスプレイを拡張することです。

#!/bin/sh
xrandr --output VIRTUAL1 --off --output LVDS1 --mode 1440x900 --pos 1280x124 --rotate normal --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal

ターミナルウィンドウでは問題なく実行されますが、クローン操作でブロックされます。

私のクローンログから:
7月9日20:14:01 localhost CROND [19494]:(ユーザー)CMD(/home/user/screens.sh)
7月9日20:14:01 localhost CROND [19492]:(ユーザー)CMDOUT(ディスプレイを開けません)

ベストアンサー1

$DISPLAYxrandrは、動作しているXセッションを通知するために変数を設定する必要があり、この変数はcron環境では設定されません。

startxxrandrは、デフォルトのローカルXセッション、TTYで実行された2番目のセッション、SSHを介してリモートディスプレイに転送されたセッション、Xnestを使用して他のセッションで実行されているネストされたXセッションなどを処理できます。$DISPLAY環境変数(またはコマンドライン引数)がないと、通常は--displayどのセッションに接続するかわからないため、終了します。

たとえば、次のコマンドで問題を解決できます。

DISPLAY=:0 /home/user/screens.sh

おすすめ記事