致力于这个答案,我发现ps
在 15.04 中命令的输出发生了很大变化。
一些例子
在 14.04 中, 的输出ps -e
显示为gnome-terminal
:
$ ps -e
19006 ? 00:00:00 gnome-terminal
而在 15.04 中:
$ ps -e
24959 ? 00:00:00 gnome-terminal-
(注意15个字符)
出于对长版本的好奇,我运行了ps -e ww
:
在 14.04 中:
$ ps -e ww
19006 ? Sl 0:01 gnome-terminal
在 15.04 中
$ ps -e ww
24959 ? Rl 0:01 /usr/lib/gnome-terminal/gnome-terminal-server --app-id com.canonical.Terminal.qVQkBaeWjRVoRiJKYQVkNNyrboXUfVrj
查找应用程序对应的pid:
在 14.04 中:
$ ps -p 19006 -o comm=
gnome-terminal
而在 15.04 中:
$ ps -p 24959 -o comm=
再次是 15 个字符(如预期的那样):
gnome-terminal-
在链接的问题中,我通过从 中导出应用程序名称WM_CLASS
(如命令输出中所述)解决了该问题xprop
。不过,我更喜欢使用“老式”的ps -p 19006 -o comm=
,因为它效率更高。
这些差异对脚本的使用有很大影响。我的问题是:有谁知道这背后的原因是什么或者这是由什么引起的?
答案1
似乎与 gnome-terminal 的更改有关。但是,浏览变更日志和新闻后,我找不到任何具体信息。
正如您在 14.04 gnome-terminal 包的文件列表中看到的,/usr/lib/ 目录甚至不存在。
/usr/bin/gnome-terminal
/usr/bin/gnome-terminal.wrapper
/usr/share/applications/gnome-terminal.desktop
/usr/share/doc/gnome-terminal/AUTHORS
/usr/share/doc/gnome-terminal/NEWS.gz
/usr/share/doc/gnome-terminal/README
/usr/share/doc/gnome-terminal/changelog.Debian.gz
/usr/share/doc/gnome-terminal/copyright
/usr/share/lintian/overrides/gnome-terminal
/usr/share/man/man1/gnome-terminal.1.gz
/usr/share/man/man1/gnome-terminal.wrapper.1.gz
/usr/share/menu/gnome-terminal
在 15.04 中,/usr/lib 目录是包括。
/usr/bin/gnome-terminal
/usr/bin/gnome-terminal.real
/usr/bin/gnome-terminal.wrapper
/usr/lib/gnome-terminal/gnome-terminal-migration
/usr/lib/gnome-terminal/gnome-terminal-server
/usr/lib/nautilus/extensions-3.0/libterminal-nautilus.so
/usr/share/appdata/gnome-terminal.appdata.xml
/usr/share/applications/gnome-terminal.desktop
/usr/share/dbus-1/services/org.gnome.Terminal.service
/usr/share/doc/gnome-terminal/AUTHORS
/usr/share/doc/gnome-terminal/NEWS.gz
/usr/share/doc/gnome-terminal/README.Debian
/usr/share/doc/gnome-terminal/changelog.Debian.gz
/usr/share/doc/gnome-terminal/copyright
/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.xml
/usr/share/gnome-shell/search-providers/gnome-terminal-search-provider.ini
/usr/share/lintian/overrides/gnome-terminal
/usr/share/man/man1/gnome-terminal.1.gz
/usr/share/man/man1/gnome-terminal.wrapper.1.gz
/usr/share/menu/gnome-terminal
gnome-terminal
现在是一个 python 脚本;在 3.7 版中做出了更改,因此可能与此有关。
我还没有看到其他应用程序具有这种类型的变化。