web-dev-qa-db-ja.com

debianでGUIを停止/開始

GUIなしでDebianを起動し、コマンドを入力して目的のプログラムを起動します(ローカルマシンにあります)。たとえば、

$ chromium-browser &

LAN上の他のマシンにsshingを実行するとき、私はすでに同様のことをしています。たとえば、sofficeでcsvデータを視覚化する必要がある場合に便利です。私は現在gnomeデスクトップとDebian 7をインストールしています。

私は Debianでの起動時にGUIを無効にするためのいくつかの指示を見つけました ですが、これを実行すると、Webブラウザーの使用がロックアウトされるのを恐れて、それらを試してみるのをためらいます(必要になります)行き詰まった場合は、ブラウザを使用して支援を求めてください)。

他の端末のいずれかでGUIを起動する方法を一時的にテストできるかどうか疑問に思っていました(例:ctrl+alt+f1)問題がないか確認しますか?これは機能しますか? GUIなしで起動するときにGUIを起動するのと同じですか?

これが可能である場合、誰かが完全な指示を提供してください:

  • 端末でGUIを有効にするf1 GUIプログラムを実行できるように(完全なデスクトップインターフェイスを表示せずに)
  • 起動時にデスクトップインターフェイスGUIをオフにする

明らかに、GUIプログラムをロードするためにX11を実行する必要があります-それは問題ありませんが、テキストモードで起動し、必要に応じてGUIプログラムを実行するだけです。

ubuntu 12.04 virtualbox vmでいくつかのテストを行います(うまくいけば、debian 7とそれほど変わらないでしょうか?)...

$ ps aux | grep gdm
# *blank*
$ ps aux | grep kdm
# *blank*
$ ps aux | grep lightdm
root      1225  0.0  0.0 270664  3500 ?        Ssl  12:43   0:00 lightdm
root      1234  1.9  2.2 236564 112276 tty7    Ss+  12:43   0:01 /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
root      1382  0.0  0.0 156772  3572 ?        Sl   12:43   0:00 lightdm --session-child 12 19
$ Sudo update-rc.d lightdm disable
update-rc.d: warning: /etc/init.d/lightdm missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Disabling system startup links for /etc/init.d/lightdm ...
 Removing any system startup links for /etc/init.d/lightdm ...
   /etc/rc0.d/K20lightdm
   /etc/rc1.d/K20lightdm
   /etc/rc2.d/K80lightdm
   /etc/rc3.d/K80lightdm
   /etc/rc4.d/K80lightdm
   /etc/rc5.d/K80lightdm
   /etc/rc6.d/K20lightdm
 Adding system startup for /etc/init.d/lightdm ...
   /etc/rc0.d/K20lightdm -> ../init.d/lightdm
   /etc/rc1.d/K20lightdm -> ../init.d/lightdm
   /etc/rc6.d/K20lightdm -> ../init.d/lightdm
   /etc/rc2.d/K80lightdm -> ../init.d/lightdm
   /etc/rc3.d/K80lightdm -> ../init.d/lightdm
   /etc/rc4.d/K80lightdm -> ../init.d/lightdm
   /etc/rc5.d/K80lightdm -> ../init.d/lightdm
$ Sudo shutdown -r 0

そして、GUIは再起動後に再び稼働します。したがって、これには明らかに望ましい効果がありませんでした。しかしながら:

$ Sudo /etc/init.d/lightdm stop

gUIを殺します。 tty2に移動する(ctrl+alt+f2)そしてFirefoxを開こうとします:

$ firefox &
Error: no display specified

だからディスプレイを指定しようとしています:

$ export DISPLAY='0.0'
$ firefox &
Error: cannot open display: 0.0

そして今、私は行き詰まっています。私はまだguiを取り戻すことができますctrl+alt+f7 tty2に次のように入力します。

$ Sudo /etc/init.d/lightdm start

しかし、これは私が望むものではありません。時計やメニューバーなど、他のすべてのデスクトップのものを表示せずにFirefoxを実行できるようにしたいだけです。

goldilocks 'の答えのいくつかを試してみる

$ Sudo /etc/init.d/lightdm stop
$ echo "#!/bin/bash" > ~/.xinitrc
$ echo "exec firefox" >> ~/.xinitrc
$ xinit

これはまさに私が望むことをします:)

3
mulllhausen

Xdm/kdm/gdm/whichever-dm-you-haveを無効にする手順は正しいです。これを行わない場合は、グラフィカルログイン(つまり、dm =ディスプレイマネージャー)で起動し、Xを終了するたびに(これはctrl-alt-backspaceと同じくらい簡単になるはずです-試してみて、アプリを閉じてください)最初に、DMは別のグラフィカルログインを再生成し、GUIをエスケープすることを不可能にします。

Debianのもう1つの可能性は、dmを開始しないランレベルの/etc/rc[N].dをチェックインし、/etc/inittabinitdefaultにすることです。私は未変更のdebianシステムを手元に持っていないので、それが2となる可能性があるとしたら、おそらく2とは言えません、1、または6は選択しないでください

Dmを無効にしたら、ログインコンソールを起動します。そこから、コマンドstartxを使用してXを起動できます。これには、デフォルトのDEが含まれます。また、gnomeを使用している場合は、おそらくそれです。デフォルトの代わりに実行されるシェルスクリプトである~/.xinitrcを作成することもできます。一般に、それらはかなり最小限にすることができます。例:

#!/bin/sh

exec gnome-session

Gnomeを起動する必要があります(私はgnomeシステムも手元にないと思います)。

XなしではGUIアプリケーションを実行できないことに注意してください。あなたがそれを理解しているあなたの投稿からは明らかではありません。 GUIプログラムは実際にはclientsであり、Xorg serverが必要です。 exec gnome-session行をアプリケーションの名前で置き換えることにより、DEまたはWMを使用せずに特定のアプリケーションを起動することができます。ただし、アプリケーションを閉じると、他に何かを開始する方法がないことに注意してください。 、カーソルが浮いた状態で空白の画面が表示されます。

これには何も危険なことはなく、必要に応じてDMを再度有効にすることは簡単です。

9
goldilocks

起動時にGUIをオフにする場合:

update-rc.d gdm3 disable # if you using gdm3
update-rc.d kdm disable  #if you using kdm

ただし、両方ある場合は、両方のコマンドを実行してください。

ubuntu OSで起動時にグラフィカルモードを無効にする場合:

echo "manual" | tee -a /etc/init/lightdm.override

ubuntuUpsatrtを使用し、lightdmupstart serviceとして呼び出したためです。

UNIXの世界では、グラフィカル環境には3つの層があります。

  1. X#キーボード、マウス、および一部のドライバーをサポート
  2. ウィンドウマネージャー#デコレーターの処理、タイトルの獲得など
  3. ディスプレイマネージャー#ウィンドウ間の通信を作成します。

Gdm3またはkdmを実行すると、3layersが実行されます。

ネットワーク上でグラフィカルなプログラムを実行したい場合は、レイヤー1:Xが必要です。設定する必要があります。

export DISPLAY=YOUR_DEST_IP:0.0

次に、プログラムを実行します。

5
PersianGulf