私のディスプレイマネージャーが何であるかを教えてくれる簡単なLinuxコマンドはありますか?
Xfceを使用しています。通常、さまざまなデスクトップ環境がさまざまなディスプレイマネージャーと提携していますか?
残念ながら、構成はディストリビューションごとに異なります。
Debian/Ubuntu
/etc/X11/default-display-manager
RedHat(Fedoraにも適用する必要があります)
/etc/sysconfig/desktop
OpenSuSe
/etc/sysconfig/displaymanager
systemdベースの配布を使用している場合。複数のディスプレイマネージャーがインストールされている可能性があるため、このコマンドは現在構成されているディスプレイマネージャーの名前を示します。
grep '/usr/s\?bin' /etc/systemd/system/display-manager.service
出力は次のようになります
ExecStart=/usr/bin/mdm
私はミントディスプレイマネージャーを使用しているようです。
ありません。ディスプレイマネージャーは、必ずしも同じ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
マシン上のアクティブなディスプレイマネージャーサービスの名前とステータスを表示します。
ディスプレイマネージャー名はDESKTOP_SESSIONにある必要があります
echo $DESKTOP_SESSION
「gnome」を返します。
[〜#〜]編集[〜#〜]
あなたが正しい。それらはXFCEでそれを行ったり来たりしています bugzilla なので、おそらくあまり信頼できません。
@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$"
screenfetchと呼ばれるサードパーティのスクリプトを介してこれを行うことができます
ScreenfetchはLinuxで使用可能なbashスクリプトであり、システム情報をASCII Linuxディストリビューションのバージョンのシステムの横に表示します。
パッケージマネージャ経由でインストールSudo apt-get install screenfetch
(Debianバリアントを使用していると想定)
ターミナルでscreenfetch
を実行するだけです
プロジェクトリンク https://github.com/KittyKatt/screenFetch
場合によっては、wmctrlが役立つことがあります。このユーティリティは、多くのWindowsマネージャーと互換性があります。
wmcrt -m
現在使用されているウィンドウマネージャの名前が表示されます。
すでに述べたように、このスレッドには多くの混乱があります。最初の問題は、デスクトップマネージャーやウィンドウマネージャーではなく、どのディスプレイマネージャーかです。私は現在、XfceウィンドウマネージャーであるXfwm4と、軽量X11ディスプレイマネージャーであるlxdm(LXfからではなく、LXDEから)を実行しています。 htopを介して、使用しているディスプレイマネージャーを確認できるはずです。あなたはおそらく過去4年間で答えを発見してからずっと経ちます:)