我根据ArchWIki安装了‘plasma’ 包组,安装完成后启动KDE很慢(我是通过 xorg-xinit 启动图形界面的),要等2~3分钟才启动完成,桌面显示后1分钟内只能移动鼠标,无法点击,无法按键盘。我在`/etc/xdg/autostart`中排除后才发现是fcitx的问题。
将fcitx的启动脚本从`/etc/xdg/autostart`中移除后启动时间才没那么慢,但是当我进入KDE,在启动器中启动fcitx后还是要卡1分钟这样。
在我的dwm中则不会遇到启动fcitx慢,会卡的现象。
这是fcitx的启动时控制台的输出:
** (process:18261): WARNING **: 20:43:29.718: Error loading plugin: libaspell.s
o.15: 无法打开共享对象文件: 没有那个文件或目录
** (process:18261): WARNING **: 20:43:29.719: Error loading plugin: libhspell.s
o.0: 无法打开共享对象文件: 没有那个文件或目录
** (process:18261): WARNING **: 20:43:29.719: Error loading plugin: libhunspell
-1.7.so.0: 无法打开共享对象文件: 没有那个文件或目录
** (process:18261): WARNING **: 20:43:29.719: Error loading plugin: libnuspell.
so.5: 无法打开共享对象文件: 没有那个文件或目录
** (process:18261): WARNING **: 20:43:29.719: Error loading plugin: libvoikko.s
o.1: 无法打开共享对象文件: 没有那个文件或目录
(ERROR-18261 ime.c:432) fcitx-keyboard-tr-otk already exists
以上的WARNING和ERROR在dwm中启动fcitx时也会出现,似乎不是由这些造成的
最近编辑记录 Ded_Secer (2021-08-24 22:28:43)
离线
strace 会用不?
离线
我对strace不是很了解,但我尝试
strace -tt -T fcitx
并得到输出
12:37:47.403237 execve("/usr/bin/fcitx", ["fcitx"], 0x7ffce0f8fed0 /* 67 vars */) = 0 <0.043813>
12:37:47.447366 brk(NULL) = 0x5639b6925000 <0.000119>
12:37:47.447683 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffcb0324ee0) = -1 EINVAL (无效的参数) <0.000109>
12:37:47.450128 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (没有那个文件或目录) <0.000022>
12:37:47.450241 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 <0.000132>
12:37:47.450546 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=143472, ...}, AT_EMPTY_PATH) = 0 <0.000108>
12:37:47.450847 mmap(NULL, 143472, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f789cdd4000 <0.000135>
12:37:47.451172 close(3) = 0 <0.000014>
12:37:47.451325 openat(AT_FDCWD, "/usr/lib/libfcitx-core.so.0", O_RDONLY|O_CLOEXEC) = 3 <0.000089>
12:37:47.451561 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \200\0\0\0\0\0\0"..., 832) = 832 <0.012265>
12:37:47.464168 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=138480, ...}, AT_EMPTY_PATH) = 0 <0.000173>
12:37:47.464711 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f789cdd2000 <0.000169>
12:37:47.465190 mmap(NULL, 141184, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f789cdaf000 <0.000118>
12:37:47.465504 mprotect(0x7f789cdb7000, 102400, PROT_NONE) = 0 <0.000119>
12:37:47.465777 mmap(0x7f789cdb7000, 73728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x7f789cdb7000 <0.000110>
12:37:47.466039 mmap(0x7f789cdc9000, 24576, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0x7f789cdc9000 <0.000055>
12:37:47.466177 mmap(0x7f789cdd0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0x7f789cdd0000 <0.000049>
12:37:47.466782 close(3) = 0 <0.000033>
12:37:47.466945 openat(AT_FDCWD, "/usr/lib/libfcitx-config.so.4", O_RDONLY|O_CLOEXEC) = 3 <0.000076>
12:37:47.467135 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 P\0\0\0\0\0\0"..., 832) = 832 <0.000340>
12:37:47.467646 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=97392, ...}, AT_EMPTY_PATH) = 0 <0.000047>
12:37:47.467833 mmap(NULL, 99864, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f789cd96000 <0.000040>
12:37:47.467967 mmap(0x7f789cd9b000, 49152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0x7f789cd9b000 <0.000047>
12:37:47.468099 mmap(0x7f789cda7000, 20480, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7f789cda7000 <0.000038>
12:37:47.468217 mmap(0x7f789cdac000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f789cdac000 <0.000036>
12:37:47.468666 close(3) = 0 <0.000029>
12:37:47.468788 openat(AT_FDCWD, "/usr/lib/libfcitx-utils.so.0", O_RDONLY|O_CLOEXEC) = 3 <0.000045>
12:37:47.468931 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 @\0\0\0\0\0\0"..., 832) = 832 <0.000036>
12:37:47.469056 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=75448, ...}, AT_EMPTY_PATH) = 0 <0.000032>
12:37:47.469195 mmap(NULL, 77936, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f789cd82000 <0.000036>
12:37:47.469317 mprotect(0x7f789cd86000, 57344, PROT_NONE) = 0 <0.000038>
12:37:47.469438 mmap(0x7f789cd86000, 40960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7f789cd86000 <0.000047>
12:37:47.469571 mmap(0x7f789cd90000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x7f789cd90000 <0.000040>
12:37:47.469695 mmap(0x7f789cd94000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7f789cd94000 <0.000058>
12:37:47.469889 close(3) = 0 <0.000029>
12:37:47.470015 openat(AT_FDCWD, "/usr/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 <0.000043>
12:37:47.470156 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\200\0\0\0\0\0\0"..., 832) = 832 <0.000033>
12:37:47.470285 pread64(3, "\4\0\0\0@\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 80, 792) = 80 <0.000031>
12:37:47.470411 pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\7\310\371[O2Q\320\205P!z\330\241\363\20"..., 68, 872) = 68 <0.000030>
12:37:47.470565 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=154040, ...}, AT_EMPTY_PATH) = 0 <0.000032>
12:37:47.470719 mmap(NULL, 131472, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f789cd61000 <0.000038>
12:37:47.470845 mprotect(0x7f789cd68000, 81920, PROT_NONE) = 0 <0.000044>
12:37:47.470973 mmap(0x7f789cd68000, 61440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f789cd68000 <0.000041>
12:37:47.471100 mmap(0x7f789cd77000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f789cd77000 <0.000037>
12:37:47.471223 mmap(0x7f789cd7c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0x7f789cd7c000 <0.000038>
12:37:47.471358 mmap(0x7f789cd7e000, 12688, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f789cd7e000 <0.000037>
12:37:47.471503 close(3) = 0 <0.000029>
12:37:47.471623 openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 <0.000041>
12:37:47.471762 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`|\2\0\0\0\0\0"..., 832) = 832 <0.000032>
12:37:47.471889 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 <0.000031>
12:37:47.472017 pread64(3, "\4\0\0\0@\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 80, 848) = 80 <0.000030>
12:37:47.472142 pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0K@g7\5w\10\300\344\306B4Zp<G"..., 68, 928) = 68 <0.000030>
12:37:47.472267 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2150424, ...}, AT_EMPTY_PATH) = 0 <0.000031>
12:37:47.472403 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 <0.000030>
12:37:47.472528 mmap(NULL, 1880536, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f789cb95000 <0.000036>
12:37:47.472652 mmap(0x7f789cbbb000, 1355776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x7f789cbbb000 <0.000046>
12:37:47.472784 mmap(0x7f789cd06000, 311296, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x171000) = 0x7f789cd06000 <0.000038>
12:37:47.472907 mmap(0x7f789cd52000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bc000) = 0x7f789cd52000 <0.000040>
12:37:47.473043 mmap(0x7f789cd58000, 33240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f789cd58000 <0.000054>
12:37:47.473222 close(3) = 0 <0.000029>
12:37:47.473356 openat(AT_FDCWD, "/usr/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 <0.000042>
12:37:47.473497 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\"\0\0\0\0\0\0"..., 832) = 832 <0.000032>
12:37:47.473625 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=22704, ...}, AT_EMPTY_PATH) = 0 <0.000031>
12:37:47.473762 mmap(NULL, 24720, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f789cb8e000 <0.000036>
12:37:47.473885 mmap(0x7f789cb90000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f789cb90000 <0.000046>
12:37:47.474015 mmap(0x7f789cb92000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7f789cb92000 <0.000037>
12:37:47.474136 mmap(0x7f789cb93000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7f789cb93000 <0.000036>
12:37:47.474284 close(3) = 0 <0.000029>
12:37:47.474418 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f789cb8c000 <0.000035>
12:37:47.474574 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f789cb8a000 <0.000033>
12:37:47.474695 arch_prctl(ARCH_SET_FS, 0x7f789cb8d600) = 0 <0.000029>
12:37:47.474968 mprotect(0x7f789cd52000, 12288, PROT_READ) = 0 <0.000042>
12:37:47.475117 mprotect(0x7f789cb93000, 4096, PROT_READ) = 0 <0.000036>
12:37:47.475307 mprotect(0x7f789cd7c000, 4096, PROT_READ) = 0 <0.000036>
12:37:47.475492 mprotect(0x7f789cd94000, 4096, PROT_READ) = 0 <0.000034>
12:37:47.475677 mprotect(0x7f789cdac000, 4096, PROT_READ) = 0 <0.000035>
12:37:47.476004 mprotect(0x7f789cdd0000, 4096, PROT_READ) = 0 <0.000037>
12:37:47.476155 mprotect(0x5639b6553000, 4096, PROT_READ) = 0 <0.000035>
12:37:47.476285 mprotect(0x7f789ce26000, 8192, PROT_READ) = 0 <0.000039>
12:37:47.476463 munmap(0x7f789cdd4000, 143472) = 0 <0.000063>
12:37:47.476648 set_tid_address(0x7f789cb8d8d0) = 2805 <0.000030>
12:37:47.476757 set_robust_list(0x7f789cb8d8e0, 24) = 0 <0.000028>
12:37:47.476866 rt_sigaction(SIGRTMIN, {sa_handler=0x7f789cd68b70, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f789cd74870}, NULL, 8) = 0 <0.000030>
12:37:47.477000 rt_sigaction(SIGRT_1, {sa_handler=0x7f789cd68c10, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f789cd74870}, NULL, 8) = 0 <0.000029>
12:37:47.477126 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 <0.000029>
12:37:47.477263 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 <0.000029>
12:37:47.477521 brk(NULL) = 0x5639b6925000 <0.000029>
12:37:47.477636 brk(0x5639b6946000) = 0x5639b6946000 <0.000032>
12:37:47.477797 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 <0.000042>
12:37:47.477936 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=3392576, ...}, AT_EMPTY_PATH) = 0 <0.000033>
12:37:47.478079 mmap(NULL, 3392576, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f789c84d000 <0.000038>
12:37:47.478215 close(3) = 0 <0.000028>
12:37:47.478408 pipe([3, 4]) = 0 <0.000042>
12:37:47.478546 fcntl(3, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 <0.000030>
12:37:47.478662 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 <0.000029>
12:37:47.478774 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 <0.000029>
12:37:47.478885 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 <0.000029>
12:37:47.479009 stat("/home/ds/.config/fcitx/log", {st_mode=S_IFDIR|0700, st_size=23, ...}) = 0 <0.000069>
12:37:47.479183 access("/home/ds/.config/fcitx/log", R_OK|X_OK) = 0 <0.000039>
12:37:47.479326 rt_sigaction(SIGHUP, {sa_handler=0x5639b6551290, sa_mask=[HUP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000030>
12:37:47.479470 rt_sigaction(SIGINT, {sa_handler=0x5639b6551290, sa_mask=[INT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.479605 rt_sigaction(SIGQUIT, {sa_handler=0x5639b6551290, sa_mask=[QUIT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.479738 rt_sigaction(SIGILL, {sa_handler=0x5639b6551290, sa_mask=[ILL], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000032>
12:37:47.479927 rt_sigaction(SIGTRAP, {sa_handler=0x5639b6551290, sa_mask=[TRAP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000028>
12:37:47.480065 rt_sigaction(SIGABRT, {sa_handler=0x5639b6551290, sa_mask=[ABRT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.480200 rt_sigaction(SIGBUS, {sa_handler=0x5639b6551290, sa_mask=[BUS], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000052>
12:37:47.480364 rt_sigaction(SIGFPE, {sa_handler=0x5639b6551290, sa_mask=[FPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.480503 rt_sigaction(SIGKILL, {sa_handler=0x5639b6551290, sa_mask=[KILL], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, 0x7ffcb0324c20, 8) = -1 EINVAL (无效的参数) <0.000028>
12:37:47.480634 rt_sigaction(SIGUSR1, {sa_handler=0x5639b6551290, sa_mask=[USR1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.480766 rt_sigaction(SIGSEGV, {sa_handler=0x5639b6551290, sa_mask=[SEGV], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.480915 rt_sigaction(SIGUSR2, {sa_handler=SIG_IGN, sa_mask=[USR2], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.481050 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000028>
12:37:47.481181 rt_sigaction(SIGALRM, {sa_handler=SIG_IGN, sa_mask=[ALRM], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.481312 rt_sigaction(SIGTERM, {sa_handler=0x5639b6551290, sa_mask=[TERM], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.481444 rt_sigaction(SIGSTKFLT, {sa_handler=0x5639b6551290, sa_mask=[STKFLT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.481576 rt_sigaction(SIGCHLD, {sa_handler=0x5639b6551290, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.481709 rt_sigaction(SIGSTOP, {sa_handler=0x5639b6551290, sa_mask=[STOP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, 0x7ffcb0324c20, 8) = -1 EINVAL (无效的参数) <0.000028>
12:37:47.481835 rt_sigaction(SIGTTIN, {sa_handler=0x5639b6551290, sa_mask=[TTIN], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000028>
12:37:47.481966 rt_sigaction(SIGTTOU, {sa_handler=0x5639b6551290, sa_mask=[TTOU], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000028>
12:37:47.482097 rt_sigaction(SIGURG, {sa_handler=0x5639b6551290, sa_mask=[URG], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000028>
12:37:47.482227 rt_sigaction(SIGXCPU, {sa_handler=0x5639b6551290, sa_mask=[XCPU], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.482358 rt_sigaction(SIGXFSZ, {sa_handler=0x5639b6551290, sa_mask=[XFSZ], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.482490 rt_sigaction(SIGVTALRM, {sa_handler=0x5639b6551290, sa_mask=[VTALRM], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000028>
12:37:47.482621 rt_sigaction(SIGPROF, {sa_handler=0x5639b6551290, sa_mask=[PROF], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000028>
12:37:47.482751 rt_sigaction(SIGWINCH, {sa_handler=SIG_IGN, sa_mask=[WINCH], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f789cbd1da0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 <0.000029>
12:37:47.482903 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5 <0.000039>
12:37:47.483039 newfstatat(5, "", {st_mode=S_IFREG|0644, st_size=143472, ...}, AT_EMPTY_PATH) = 0 <0.000049>
12:37:47.483203 mmap(NULL, 143472, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7f789cdd4000 <0.000036>
12:37:47.483329 close(5) = 0 <0.000028>
12:37:47.483467 openat(AT_FDCWD, "/usr/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 5 <0.000036>
12:37:47.483598 read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 0\0\0\0\0\0\0"..., 832) = 832 <0.000033>
12:37:47.483725 newfstatat(5, "", {st_mode=S_IFREG|0644, st_size=475944, ...}, AT_EMPTY_PATH) = 0 <0.000032>
12:37:47.483867 mmap(NULL, 107240, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x7f789c832000 <0.000036>
12:37:47.483990 mprotect(0x7f789c835000, 90112, PROT_NONE) = 0 <0.000041>
12:37:47.484113 mmap(0x7f789c835000, 73728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x3000) = 0x7f789c835000 <0.000043>
12:37:47.484261 mmap(0x7f789c847000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x15000) = 0x7f789c847000 <0.000037>
12:37:47.484386 mmap(0x7f789c84b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x18000) = 0x7f789c84b000 <0.000035>
12:37:47.484539 close(5) = 0 <0.000028>
12:37:47.484700 mprotect(0x7f789c84b000, 4096, PROT_READ) = 0 <0.000038>
12:37:47.484845 munmap(0x7f789cdd4000, 143472) = 0 <0.000055>
12:37:47.484989 futex(0x7f789cd59c70, FUTEX_WAKE_PRIVATE, 2147483647) = 0 <0.000030>
12:37:47.485121 futex(0x7f789c84c090, FUTEX_WAKE_PRIVATE, 2147483647) = 0 <0.000029>
12:37:47.485296 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f789cb8d8d0) = 2807 <0.000326>
12:37:47.485765 wait4(2807, NULL, 0, NULL) = 2807 <0.000885>
12:37:47.486899 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2807, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
12:37:47.487155 rt_sigreturn({mask=[]}) = 2807 <0.000108>
12:37:47.487711 exit_group(0) = ?
12:37:47.488396 +++ exited with 0 +++
最近编辑记录 Ded_Secer (2021-08-23 12:50:20)
离线
fcitx fork 走了,你需要加 -f。
另外你不试试 fcitx5 么?
离线
安装fcitx5后还是有同样的问题,运行
strace -tt -T -f -o ~/fcitx.log fcitx5
后我翻了翻输出,发现主要占用时间的是epoll_wait,(以下是log节选):
33037 14:23:15.832982 epoll_wait(5, <unfinished ...>
33039 14:23:30.541147 <... epoll_wait resumed>[{events=EPOLLIN, data={u32=3892318288, u64=140122905382992}}], 6, -1) = 1 <14.731075>
33039 14:23:30.541437 recvmsg(7, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\34\0o\f\306\1\0\0'\0\0\0K\267*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 <0.000163>
33039 14:23:30.542028 recvmsg(7, {msg_namelen=0}, 0) = -1 EAGAIN (资源暂时不可用) <0.000167>
33039 14:23:30.542502 write(29, "\0", 1) = 1 <0.000086>
33037 14:23:30.542759 <... epoll_wait resumed>[{events=EPOLLIN, data={u32=1072638128, u64=94816770664624}}], 54, -1) = 1 <14.709748>
33039 14:23:30.542883 epoll_wait(32, <unfinished ...>
33037 14:23:30.542958 read(28, "\0", 1) = 1 <0.000113>
33037 14:23:30.543338 read(28, 0x7ffc1df8e2ff, 1) = -1 EAGAIN (资源暂时不可用) <0.000048>
33037 14:23:30.543566 write(31, "\0", 1) = 1 <0.000057>
33039 14:23:30.543752 <... epoll_wait resumed>[{events=EPOLLIN, data={u32=3892317920, u64=140122905382624}}], 6, -1) = 1 <0.000811>
33037 14:23:30.543850 epoll_wait(5, <unfinished ...>
33039 14:23:30.543938 read(30, "\0", 1) = 1 <0.000047>
33039 14:23:30.544114 read(30, 0x7f70f02d0b0f, 1) = -1 EAGAIN (资源暂时不可用) <0.000035>
33039 14:23:30.544276 epoll_wait(32, [{events=EPOLLIN, data={u32=3892318288, u64=140122905382992}}], 6, -1) = 1 <0.597331>
33039 14:23:31.142017 recvmsg(7, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="U\2o\f\243\271*\0\3@@\0\0\0\0\0\0\0\0@@@@@\0\0\3\37\205\2\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 <0.000187>
离线
等了近15秒才等到消息。你往上翻,看一下这个 7 号是哪里呢?
离线
你说的7号指的是
33039 14:23:30.541437 recvmsg(7, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\34\0o\f\306\1\0\0'\0\0\0K\267*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32 <0.000163>
中函数第一个参数是7的吗?
不是
33039 14:23:30.541147 <... epoll_wait resumed>[{events=EPOLLIN, data={u32=3892318288, u64=140122905382992}}], 6, -1) = 1 <14.731075>
这一行等了近15秒吗(我对linux系统调用不是很了解)
我向上找了几条第一个参数是7的:
33037 14:23:15.807955 poll([{fd=7, events=POLLIN|POLLOUT}], 1, -1 <unfinished ...>
33037 14:23:15.808039 writev(7, [{iov_base="\31\0\v\0\36\0\0\3\0\0\0\0!\10\0\0\36\0\0\3\267\2\0\09\0\4\0\1\0\1\0"..., iov_len=48}], 1 <unfinished ...>
33037 14:23:15.808097 poll([{fd=7, events=POLLIN}], 1, -1 <unfinished ...>
33037 14:23:15.808246 recvmsg(7, <unfinished ...>
33039 14:23:15.808485 recvmsg(7, <unfinished ...>
离线
你应该找创建了这个 7 号文件描述符的调用(大概率是 xxx(...) = 7 这样,也有例外)。
对它不了解就去了解?推荐阅读 APUE。
离线
是不是这样的:
33037 14:21:14.513725 write(2, "unicode", 7) = 7 <0.000008>
我从等了近15秒那一行往上找` = 7 `,第一个找到的就是这行
最近编辑记录 Ded_Secer (2021-08-23 21:45:35)
离线
显然不是……你真的对系统调用了解很少……
要不你把整个日志找个地方发出来吧。比如往 fars.ee 里塞。
离线
很抱歉。
这是我的fcitx.log
最近编辑记录 Ded_Secer (2021-08-24 09:00:45)
离线
好奇怪,这个是到 X 的连接。为什么会卡在这里这么久呢……
离线
好奇怪,这个是到 X 的连接。为什么会卡在这里这么久呢……
在KDE中启动fcitx5后,我在Xorg的日志中找到一行:
[ 1409.611] (EE) event7 - Synaptics TM3383-002: client bug: event processing lagging behind by 11ms, your system is too slow
在dwm中启动fcitx5则没有这条错误
离线
是啊,Xorg 有点卡卡的。但是就 11ms 还不是很夸张呀。
离线
我删除了`~/.cache`和`~/.config`中有关kde的文件以及家目录中的一个`.Xmodmap`,重启电脑发现fcitx5可以正常运行了。
谢谢你的帮助
离线