- 締切済み
リモートのサーバでXwindowを起動したり終了したりするには?
遠隔地にあるLinuxサーバにtelnetでloginしてXwindowを 安全に起動したり、終了したりすることは可能なのでしょうか? なぜこのようなことをしたいかというと、遠隔値のサーバで動作するライブラリがXwindowが起動していることを要求しまして、このライブラリを実行するときだけXを起動して、実行しないときには起動したくないというわけです。 (リモートサーバで実行したxtermなどXのアプリをローカルのDISPLAYに表示するというのではありません。) 通常、ランレベル3で起動してLinuxでXwindowを起動するには、そのマシンのコンソールから % startx ってしますよね。でおわるにはGNOMEなりのメニューから終了とやります。 すこし実験したところ、リモートの端末からtelnetやsshでサーバにログインした状態で"startx"や"xinit"を実行するとサーバのモニタにXwindowが立ち上がるには立ち上がるのですが、xinitのプロセスをkillするとサーバのモニタが張り付いた状態になり、もとの文字だけのコンソール画面の状態にはもどらず、終了がうまくいかないのです。 この状態でもtelnetでの処理などには支障はなく、サーバのモニタだけが張り付いた状態になっています。さらに、再度xinitとやるとXがちゃんと立ち上がります。でもKillすると同じ状態に。。。 このままでもとりあえずは使えるのですが、画面が張り付いた状態で放置して問題ないのか?などきになる点はあります。はじめからランレベル6で起動すればという解もあるとは思いますが、ご意見お待ちします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- punchan_jp
- ベストアンサー率55% (155/280)
Xが死んでるのにXの背景のままだということですね? kill するときに -KILL とかつけてたりしませんか?-KILL だと、 後処理もできずに死んでしまうので、背景が残るかもしれません。
- punchan_jp
- ベストアンサー率55% (155/280)
xinit を殺したときには、X のプロセスも消えているのでしょうか? もしまだ生きているなら、それも殺せばいいように思いますが。 あるいは、ほんとうに X サーバだけがいればいいのなら、xinit もなしで、X か Xwrapper を起動し、あとでそれを殺せばいいかと 思います。殺すのが面倒なら、そしてそのライブラリが1回だけク ライアントとして X サーバに接続するだけなら、X に -terminate オプションをつけておくと、最後のクライアントが接続を切ったと きに、サーバも自動的に終了します。
補足
> xinit を殺したときには、X のプロセスも消えているのでしょうか? はい、みたところきれいにすべて消えているようにみえます。 > 殺すのが面倒なら、そしてそのライブラリが1回だけク > ライアントとして X サーバに接続するだけなら、X に -> terminate > オプションをつけておくと、最後のクライアントが接続を切ったと > きに、サーバも自動的に終了します。 すみません、ライブラリで何回Xサーバに接続を試みる か調査不足です。
- selenity
- ベストアンサー率41% (324/772)
killするプロセスは、「xinit」ではないはずです。 「X:0」となっているプロセスがX-Server本体のはずです。 「X:0」のプロセスをkillすると、GNOMEもX-Clientもすべて終了します。 でも、そのアプリケーション、なぜ、リモートマシン上のX-Serverを必要とするのでしょうねぇ??? 動きがかなり変なアプリケーションですね。 基本的には、リモートマシンへtelnetやsshでログインした状態で"startx"や"xinit"はしないのですが、、、
補足
xinitをkillすると"X :0"やそれ以降のWindowManagerなどもきれいにプロセスはなくなります。 > でも、そのアプリケーション、なぜ、リモートマシン上のX-Serverを必要とするのでしょうねぇ??? > 動きがかなり変なアプリケーションですね。 どきっ。はい、あやしげなアプリケーションです。 javaの画像関係のライブラリを使う際にNativeMethodをよびにいっていてそこからDISPLAYが利用可能かどうかをチェックするものなのです。
- h_hikita
- ベストアンサー率40% (104/257)
案A) X だけ立ち上げるとかではだめでしょうか? % X & % killall X 案B) vncなどを使うとかはどうでしょうか? % vncserver :2 & % kterm -display :2 & % vncserver -kill :2 とかして使用できるような気がします。 # VNCはこちらです → http://www.uk.research.att.com/vnc/index.html
補足
まさにそうです。背景とポインタがのこって、マウスを動かしても当然ながら動きません。 killには"-KILL"はつけていません。オプションなしです。 よく考えると、背景がのこるのでつじつまあっているのかも?処理はXを起動した仮想端末にもどるし。。。でももともと表示していたコンソール画面はどこいった?