emacs 启动缓慢 read/poll/writev /org/freedesktop /org/gnome

emacs 启动缓慢 read/poll/writev /org/freedesktop /org/gnome

在我是非 root 用户的 Linux CentOS 系统上,每次启动 emacs-24.5 大约需要 30 秒才能显示:

strace -tt -o emacs.strace ~/local/bin/emacs-24.5

有一些 read/pool/writev 条目似乎提到了 /org/freedesktop 和 /org/gnome ,并且在 30 秒后超时,但我不知道发生了什么:

[...]
11:17:14.251692 write(4, "BEGIN\r\n", 7) = 7
11:17:14.251730 poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
11:17:14.251774 writev(4, [{"l\1\0\1\0\0\0\0\1\0\0\0n\0\0\0\1\1o\0\25\0\0\0/org/fre"..., 128}, {"", 0}], 2) = 128
11:17:14.251829 poll([{fd=4, events=POLLIN}], 1, 25000) = 1 ([{fd=4, revents=POLLIN}])
11:17:14.252008 read(4, "l\2\1\1\t\0\0\0\1\0\0\0=\0\0\0\6\1s\0\4\0\0\0:1.0\0\0\0\0"..., 2048) = 258
11:17:14.252072 read(4, 0x186c310, 2048) = -1 EAGAIN (Resource temporarily unavailable)
11:17:14.252153 writev(4, [{"l\1\0\1\0\0\0\0\2\0\0\0_\0\0\0\1\1o\0\20\0\0\0/org/gno"..., 112}, {"", 0}], 2) = 112
11:17:14.252209 poll([{fd=4, events=POLLIN}], 1, 25000) = 0 (Timeout)
11:17:39.276732 writev(4, [{"l\1\0\1\0\0\0\0\3\0\0\0_\0\0\0\1\1o\0\20\0\0\0/org/gno"..., 112}, {"", 0}], 2) = 112
11:17:39.276933 poll([{fd=4, events=POLLIN}], 1, 25000) = 0 (Timeout)
11:18:04.299584 writev(4, [{"l\1\0\1\0\0\0\0\4\0\0\0_\0\0\0\1\1o\0\20\0\0\0/org/gno"..., 112}, {"", 0}], 2) = 112
11:18:04.299693 poll([{fd=4, events=POLLIN}], 1, 25000) = 0 (Timeout)
11:18:29.322840 writev(4, [{"l\1\0\1\0\0\0\0\5\0\0\0_\0\0\0\1\1o\0\20\0\0\0/org/gno"..., 112}, {"", 0}], 2) = 112
11:18:29.322988 poll([{fd=4, events=POLLIN}], 1, 25000) = 0 (Timeout)
11:18:54.339815 writev(4, [{"l\1\0\1\0\0\0\0\6\0\0\0_\0\0\0\1\1o\0\20\0\0\0/org/gno"..., 112}, {"", 0}], 2) = 112
11:18:54.339982 poll([{fd=4, events=POLLIN}], 1, 25000) = 0 (Timeout)
11:19:19.364735 writev(4, [{"l\1\0\1\0\0\0\0\7\0\0\0_\0\0\0\1\1o\0\20\0\0\0/org/gno"..., 112}, {"", 0}], 2) = 112
11:19:19.364810 poll([{fd=4, events=POLLIN}], 1, 25000) = 0 (Timeout)
11:19:44.384454 poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
11:19:44.384515 writev(3, [{"\2\1\4\0|\1\0\0\0\10\0\0\0\0B\0\2O\4\0|\1\0\0\0\10\0\0\0\0\2\0"..., 44}, {NULL, 0}, {"", 0}], 3) = 44
[...]

顺便说一句,我注意到在这台机器上,我有一堆 gconfd-2 进程随着时间的推移而积累:

username   770  0.2  0.0 128432   428 ?        S    Sep07  58:09 /usr/libexec/gconfd-2
username  3096  0.2  0.0 128432   428 ?        S    Sep02  73:37 /usr/libexec/gconfd-2
username  5966  0.1  0.0 128432  2280 ?        S    10:51   0:03 /usr/libexec/gconfd-2
username  6171  0.2  0.0 128432   428 ?        S    Sep07  58:51 /usr/libexec/gconfd-2
username  6339  0.1  0.0 128432  2028 ?        S    Sep26   2:36 /usr/libexec/gconfd-2
username  6524  0.2  0.0 128432   428 ?        S    Sep02  73:32 /usr/libexec/gconfd-2
username  6954  0.2  0.0 128432   444 ?        S    Sep09  52:29 /usr/libexec/gconfd-2
username  7067  0.2  0.0 128432   428 ?        S    Sep06  62:02 /usr/libexec/gconfd-2
username  8035  0.1  0.0 128436  2280 ?        S    11:17   0:00 /usr/libexec/gconfd-2
username  8478  0.1  0.0 128436  2284 ?        S    11:17   0:00 /usr/libexec/gconfd-2
username 16077  0.2  0.0 128432   416 ?        S    Sep05  64:07 /usr/libexec/gconfd-2
username 18245  0.1  0.0 128432  2280 ?        S    11:02   0:02 /usr/libexec/gconfd-2
username 18721  0.2  0.0 128432   428 ?        S    Sep09  52:53 /usr/libexec/gconfd-2
username 19247  0.2  0.0 128432   416 ?        S    Sep02  73:51 /usr/libexec/gconfd-2
username 20655  0.1  0.0 128432  2280 ?        S    10:55   0:02 /usr/libexec/gconfd-2
username 21503  0.1  0.0 128432  2280 ?        S    10:55   0:02 /usr/libexec/gconfd-2
username 22662  0.1  0.0 128432  2264 ?        S    Sep26   1:52 /usr/libexec/gconfd-2
username 23035  0.2  0.0 128432   416 ?        S    Sep05  64:54 /usr/libexec/gconfd-2
username 25380  0.1  0.0 128432  2280 ?        S    10:49   0:03 /usr/libexec/gconfd-2
username 25445  0.1  0.0 128432  2172 ?        S    Sep26   2:03 /usr/libexec/gconfd-2
username 25528  0.1  0.0 128432  2024 ?        S    Sep26   2:43 /usr/libexec/gconfd-2
username 26399  0.1  0.0 128432  2268 ?        S    09:06   0:13 /usr/libexec/gconfd-2
username 26585  0.0  0.0 103252   856 pts/6    S+   11:22   0:00 grep gconfd
username 26752  0.2  0.0 128432   432 ?        S    Sep09  52:17 /usr/libexec/gconfd-2
username 28597  0.2  0.0 128432   432 ?        S    Sep09  52:07 /usr/libexec/gconfd-2
username 29638  0.1  0.0 128432  2176 ?        S    Sep26   2:03 /usr/libexec/gconfd-2

有什么想法可能会发生什么吗?有没有办法以不同的方式调用 emacs,这样这种情况就不会继续发生?

编辑:更多细节

这是我通过 ssh 进入的 CentOS 系统,我假设使用 gnome,因为我从带有 gnome 的 Ubuntu 14.04 系统进行 ssh:

cat /etc/centos-release 
CentOS release 6.2 (Final)

正如我所说,这是在一个系统上,我只是一个用户,非 root 访问权限,所以如果有一种方法可以让我解决问题,而不必打扰系统管理员,那就太好了。

相关内容