web-dev-qa-db-ja.com

私のディスプレイマネージャーが何であるかを教えてくれる簡単なLinuxコマンドはありますか?

私のディスプレイマネージャーが何であるかを教えてくれる簡単なLinuxコマンドはありますか?

Xfceを使用しています。通常、さまざまなデスクトップ環境がさまざまなディスプレイマネージャーと提携していますか?

65
ptrcao

残念ながら、構成はディストリビューションごとに異なります。

Debian/Ubuntu

/etc/X11/default-display-manager

RedHat(Fedoraにも適用する必要があります)

/etc/sysconfig/desktop

OpenSuSe

/etc/sysconfig/displaymanager
52
Šimon Tóth

systemdベースの配布を使用している場合。複数のディスプレイマネージャーがインストールされている可能性があるため、このコマンドは現在構成されているディスプレイマネージャーの名前を示します。

grep '/usr/s\?bin' /etc/systemd/system/display-manager.service

出力は次のようになります

ExecStart=/usr/bin/mdm

私はミントディスプレイマネージャーを使用しているようです。

27
allsyed

ありません。ディスプレイマネージャーは、必ずしも同じXサーバー上で実行されている他のものとは関係ありません。ログインする前に表示マネージャが実行されます。システム管理者が選択します。それ以外のすべて(ウィンドウマネージャー、セッションマネージャー、デスクトップ環境など)はユーザーが選択します。ディスプレイマネージャーである必要はありません。テキストモードでログインし、GUIを startx で開始した場合、ディスプレイマネージャーは関与しません。

あなたは どのディスプレイマネージャがあなたのシステムのデフォルトのものか をチェックすることができます。これは、一般的な仮定ではなく一般的な仮定の下でのみ正しい答えを示します。何らかの理由で別のマネージャーを手動で実行した場合、このメソッドは通知しません。

XサーバーのプロセスIDを確認することをお勧めします。親プロセスは、ディスプレイマネージャーがある場合は、おそらくディスプレイマネージャーです。これには、クライアントがXサーバーと同じマシン上で実行されている必要があります。 lsof /tmp/.X11-unix/X${DISPLAY#:}はXサーバープロセスを表示します(Xソケットが/tmp/.X11-unixにあると想定しています)。

x=$(lsof -F '' /tmp/.X11-unix/X0); x=${x#p}
ps -p $(ps -o ppid -p $x)

(説明:lsof -F ''p1234のような出力を出力します。-Fオプションは機械で解析可能な出力形式を意味し、''は前に文字pを付けてPIDのみを出力することを意味しますx=${x#p}は、最初の文字pを削除します。最後の行は、Xサーバーの親のPID(ps -o ppid -p $x)を取得し、psを呼び出してその親プロセスに関する情報を表示します。

一部のディストリビューションでは、複数のディスプレイマネージャをインストールできます。マルチシートシステムを使用している場合を除いて、1つだけが実行されます。 Debianおよび派生物でインストールされているすべてのディスプレイマネージャーパッケージを一覧表示するには:

aptitude -F %p search '~i ~P^x-display-manager$'

または

</var/lib/dpkg/status awk '
    /^Package: / {package = $2}
    /^Provides: .*x-display-manager/ {print package}'

Systemdを使用している場合は、

systemctl status display-manager

マシン上のアクティブなディスプレイマネージャーサービスの名前とステータスを表示します。

23
Mio Rin

ディスプレイマネージャー名はDESKTOP_SESSIONにある必要があります

echo $DESKTOP_SESSION

「gnome」を返します。

[〜#〜]編集[〜#〜]
あなたが正しい。それらはXFCEでそれを行ったり来たりしています bugzilla なので、おそらくあまり信頼できません。

10
charlesbridge

@Gillesが言ったように、ディスプレイマネージャーはデスクトップ環境を起動します。

Debian Wiki によると、これらは主にdmで終わり、例外はslimだけです。

したがって、ほとんどの人のニーズにはこれで十分です:

ps auxf | awk '{print $11}' | \grep --color -e dm$ -e slim$

または、確かに、それは親プロセスとして存在し、forkされていません(initシステムを除く)。

ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$" 
3
sjas

screenfetchと呼ばれるサードパーティのスクリプトを介してこれを行うことができます

ScreenfetchはLinuxで使用可能なbashスクリプトであり、システム情報をASCII Linuxディストリビューションのバージョンのシステムの横に表示します。

パッケージマネージャ経由でインストールSudo apt-get install screenfetch(Debianバリアントを使用していると想定)

ターミナルでscreenfetchを実行するだけです

プロジェクトリンク https://github.com/KittyKatt/screenFetch

0

場合によっては、wmctrlが役立つことがあります。このユーティリティは、多くのWindowsマネージャーと互換性があります。

wmcrt -m 

現在使用されているウィンドウマネージャの名前が表示されます。

0
Francis Gernet

すでに述べたように、このスレッドには多くの混乱があります。最初の問題は、デスクトップマネージャーやウィンドウマネージャーではなく、どのディスプレイマネージャーかです。私は現在、XfceウィンドウマネージャーであるXfwm4と、軽量X11ディスプレイマネージャーであるlxdm(LXfからではなく、LXDEから)を実行しています。 htopを介して、使用しているディスプレイマネージャーを確認できるはずです。あなたはおそらく過去4年間で答えを発見してからずっと経ちます:)

0
billV