回答:
通常は
unset DISPLAY
ターミナルのコマンドラインで。一部のアプリケーションはそれよりも賢く、実際にコンソールと疑似端末の許可とタイプを確認します。
DISPLAY=invalid:0
?
env
代わりにサブシェルの:env -u DISPLAY emacs foo.c
emacs
は、Xの使用を無効にするコマンドラインフラグがありますemacs -nw
。しかし、そうでなければ、代わりにを使用することもできDISPLAY= emacs
ます。
DISPLAY=0.0.0.0:0
ネームサーバールックアップを実行せずに即座に失敗します。
単一のコマンドに対してXを無効にする場合は、次のように記述できます。
DISPLAY= ./my_command
の後の戦略的な空白に注意してください=
。より一般的には、<variable>=<value>
スペースで区切られたシーケンスをコマンドの前に付けることにより、プロセスの環境変数を設定できます。スペースはセパレータとして機能するため、=
すぐにスペースが続くと、前の変数がクリアされます。サブシェルをコマンドとして使用し、その環境を出力することにより、これらのプレフィックスの効果を確認できます。例えば:
$ A=a B=b C= D=d sh
$ echo $A $B $C $D
これは印刷されます
a b d
これは、サブシェルの環境が実際に意図したとおりに異なることを示しています。シェルの置換は個々の引数がに渡される前に発生するecho
ため、コマンドラインが(2つのスペースを含む)かのように、出力と出力の間b
にd
はスペースが1つしかありませんecho a b d
。
DISPLAY=:0
、それが設定されていないと仮定します。別のユーザーで実行し、iptablesを使用してループバックX11をドロップすることで修正できると思いますが、それはかなりひどいことです。