最近、私はこれをxset b off
私の.bashrcに入れました。これで、ttyやssh(Xセッションの外など)を介してログインしたときに表示されるエラーのため、迷惑になります。
私の最初の考えは[[ -z "$SOME_VAR" ]] && xset b off
(まあ、テスト結果が出てきた。変数が設定されていて空です。他の質問です。)しかし、どのSOME_VARが正しいですか?
そのため、Xで設定された変数とttyから欠落している変数を確認するために、set
ttyの出力をurxvtの出力と比較しました。set
予想通り、多くの違いがあります(私に関連する違いのみがリストされています)。
DESKTOP_SESSION
DISPLAY
GDMSESSION
SESSION_MANAGER
WINDOWID
WINDOWPATH
XAUTHORITY
XDG_SESSION_COOKIE
XDG_CONFIG_DIRS
XDG_DATA_DIRS
XDG_MENU_PREFIX
セッションXにあることをテストする最も正確で一般的な方法は何ですか?可能な限り多くのディストリビューション、プラットフォーム、およびデスクトップ環境で実行できるのですか?
それとも、環境変数をテストするよりも良い方法はありますか?
ベストアンサー1
ディスプレイサーバーが利用可能で有効であることをテストする簡単で効果的な方法は、を使用することです。変数が無効な値に設定される可能性があるため、xhost
常に変数の値を調べることはできません。DISPLAY
if xhost >& /dev/null ; then echo "Display exists"
else echo "Display invalid" ; fi
crontab
私がこれを行う理由は、モニターがあるときはモニターで実行されますが、モニターがないときは動作が異なる複数のスクリプトがユーザーに実行されているためです。私の上部には変数がまだ存在していなくてもに設定crontab
しました。で始まるスクリプトは、モニターの有無にかかわらず起動されます。これにより、同じスクリプト内にディスプレイが表示され、消えるタイミングを動的に検出できます。DISPLAY
:0
crontab
@reboot
注:> = 4>&
でのみ利用可能です。bash
それ以外の場合> /dev/null 2>&1