[スタート]メニューの[XWinサーバー]リンクを使用するかstartxwin、Cygwinシェルから実行してCygwinのXサーバーを起動すると、自動的にxtermウィンドウが表示されます。
どうすればそれを回避できますか?
(質問に触発されたこのコメントによるStijn Vanpouckeスタックオーバーフローにオーバー)
[スタート]メニューの[XWinサーバー]リンクを使用するかstartxwin、Cygwinシェルから実行してCygwinのXサーバーを起動すると、自動的にxtermウィンドウが表示されます。
どうすればそれを回避できますか?
(質問に触発されたこのコメントによるStijn Vanpouckeスタックオーバーフローにオーバー)
回答:
更新:この回答は現在古くなっています。最新の回答については、以下のuser551570の回答を参照してください。
からman startxwin:
コマンドラインで特定のクライアントプログラムが指定されていない場合、クライアントプログラムを起動するシェルスクリプトとして実行するために
startxwin呼び出されるユーザーのホームディレクトリ内のファイルを探し.startxwinrcます。そのようなファイルが存在しない場合startxwin、以下をデフォルトとして使用します。xterm -geometry +1+1 -n login -display :0
したがって、Xサーバーの起動時にプログラムが起動しないようにするには、空の.startxwinrcファイルが必要です。Cygwinプロンプトから次を実行するだけです。
touch ~/.startxwinrc
.startxwinrcと、Xサーバーがすぐに消えます。:-(
のとして2014年11月、最新バージョンのstartxwin使用がxinit実際に呼び出されるのCygwin / Xサーバを起動しますXWin.exe。プロセスは次のようになります。
startxwinstartxwin新しい.Xauthorityファイルを作成し、.serverauth.1234(1234 Xを起動するたび変更されます)startxwin クライアントとサーバーのパラメーターを設定しますstartxwinxinitオプションのシェルスクリプトと認証ファイルへの参照を含む、クライアントとサーバーのパラメーターを使用した呼び出し。xinit Xサーバーを起動し、rcスクリプトのいくつかを実行しますxinitクライアント(通常xterm)またはクライアントrcスクリプトを開始します。これを避けたいxinit、Xサーバーをシャットダウンします。手順6を回避する場合は、これも回避する必要があります実行することが可能であるXWin.exe、周囲の作業なしに、バッシュのログインシェル内から直接、startxwinおよびxinit実行します。これの主な利点は、Xサーバーが起動し、実行し続けるという希望どおりに動作することです。残念ながら、.Xauthority起動中にファイルが渡され、Xサーバーはローカルプロセスに接続を許可しますが、これは安全ではありません。
幸いなことにxinit、それは私たちが望んでいないほとんどのことを行います。バイパスするxinitがstartxwin、サーバー自体に関連する残りの要素を保持する簡単なハックがあります。
TL; DR:ではstartxwin、下の近くに次のような行があります。
eval xinit \"$client\" $clientargs -- \"$server\" $display $serverargs
その行を次のように変更します。
eval \"$server\" $display $serverargs
これ以降、startxwinスクリプトはを呼び出すのXWin.exeではなく、直接呼び出しxinitます。明らかに、これによりクライアントのrcスクリプトが無効になりますが、そもそもそれらは必要ありません。また、Xがクライアントプロセスを必要とせずにXを実行し続けることを意味します(つまり、Xを強制終了しませxinitん)。
Cygwin Xをstartxwin(.exe)で起動するのを習慣にしました。私の.startxwinrcファイルは次のように読み取ります。
X :0 -rootless mrxvt -geometry +1+1 -n login -display :0 -tt ImTabbed
これまでのところ、うまくいきました。表示される唯一のエラーは、別のXプロセスによってディスプレイがまだ「開いている」ことに関するものです。このエラーは、Xサーバーがすべてのセッションでデフォルトで生成する特定のファイルを指定します。Cygwinの人々は、セッションが終了しても削除されないことを知っています。
だから私はそれを「治す」ためのエイリアスを書いた:
alias freex='rm /tmp/.X0-lock'
私はそれを忘れる必要がある場合に備えて、.bashrcファイルと.bash_profileファイルに同じ行(引用符の間の部分)を入れます。
HTH。
BZT
exec sleep infinityた:x.cygwin.com/docs/faq/cygwin-x-faq.html#q-startxwinrc-exit