web-dev-qa-db-ja.com

「metacity --replace」がシステムをハングアップさせるのに、「metacity --replace&」で問題ないのはなぜですか?

以下はLucid 10.04に適用されます
それは私の「実際の」コンピューターで発生し、VirtualBox VMでalso ...

(更新)Maverick 10.10をVMにインストールしたところです...ほぼ同じことが起こります!
キーボード制御はありますが(最初)、ターミナルを終了できる唯一の方法は、プロセスを実行したまま(またはCtrl + C)閉じて、ロックアップが発生することです(Enterキーを押すと、プロンプトに戻ります)

$ metacity --replace 

上記のコマンド(ターミナル内)により、システムがハングします毎回

コマンドはプロンプトに戻りません。
ウィンドウの装飾が消えます(コマンドが完了していないためでしょうか?)。
キーボードは非機能になります(ただし、マウスは引き続き動作します)...

ただし、次のコマンドは正常に動作します毎回

$ (metacity --replace &)
$ metacity --replace &    # this works too   

"hang"キーボードを緩めるだけで、Enterを押してプロンプトに戻すことはできません(...気づいたように、いくつかの無関係なコマンドがあります) Enterキーを押すまで「完全に」プロンプトに戻りません)

何が起きてる?
私の「ホスト」OSは新しいものではありませんが、VMは未使用状態です(ほぼ)...そして両方ともこのキーボードの「ロックアップ」を示します。

4
Peter.O

metacity --replaceを実行しても、デーモンとしては実行されません。 Ctrl-Cを押すか、そうでなければメタシティプロセスの実行を停止すると(ターミナルを閉じても同様に実行されます)、ウィンドウマネージャーがなくなります。そのため、ウィンドウの装飾が失われます。キーボードの機能が停止する理由は正確にはわかりません(ウィンドウマネージャーが閉じられると、入力などのウィンドウの新しい更新が画面にペイントされないことが推測されます)が、これをテストし、Ctrlキーを押すと+ Alt + F1でもフレームバッファにドロップできます。キーボードが完全に機能しなくなったことは明らかです。実際、gnome-terminalのメニュー項目をクリックすると、上下矢印を使用してナビゲートできます。

ターミナルから開始し、使用したターミナルウィンドウを閉じる必要がある場合は、screenなどのラッパーでmetacityを実行する必要があります。 screen metacity --replaceを実行し、Ctrl + A + Dを押してscreenプロセスから切り離します。

2
ayan4m1

Enterキーを押しても、ターミナルでメタシティが実行されているため、ターミナルプロンプトに戻りません。 metacityが生成する警告/エラーメッセージはすべてそこに出力されます。これは、GUIアプリの標準的な動作です。ターミナルセッションを引き継ぐ必要がない場合は、「&」を使用します。

残りについて-ウィンドウの装飾が消えるなど-私は困惑しています。

3
Marius Gedminas