cht電腦資訊gcin
adm Find login register

[Bug] 兩個 gcin

guest
1 [Bug] 兩個 gcin
Promote 0 Bookmark 02013-03-02quote  

自從之前更新 gcin 到 2.8.0 後
登入後就會有兩個 gcin 的 process 在運行
即使把一個 kill 掉
過一陣子又會出現
不知道是什麼原因

系統: Arch linux (kernel: 3.7.9)
DE  : Gnome 3.6

eliu
2
Promote 0 Bookmark 02013-03-02quote  

參考 這一篇

檢查 XMODIFIERS 是否有設定成多個情形,看 gcin 是從那邊被叫起來的。

或許用 pstree 可能有幫助。

edited: 1
guest
3  
Promote 0 Bookmark 02013-03-02quote  

看了一下 pstree

兩個 gcin 分別是被
1. systemd  (pid 540)
2. gnome-session (pid 1097)
叫起來的

在 gnome-terminal 裡
$ echo $XMODIFIERS 
出來的竟然是 @im=ibus

我的 XMODIFIERS 在 .xprofile 裡面設定為 @im=gcin

不確定其他地方有沒有重覆設定成 @im=ibus


strings /proc/540/environ
沒有任何輸出

strings /proc/1097/environ
則會輸出很多環境變數
其中有幾項相關的:

XMODIFIERS=@im=ibus
GTK_IM_MODULE=gcin
GCIN_DAEMON=

這樣
不知道  GCIN_DAEMON 從哪裡來的

目前還不知道如何解決 

hyslion
4
Promote 0 Bookmark 02013-03-05quote  

用 killall gcin 看看兩個gcin消失之後是不是都會重啟?兩個gcin的使用者都是自己的嗎?

怎麼會由 systemd 帶起 gcin 呢,這個有點怪,最近有 enable 什麼 service 嗎?

edited: 1
eliu
5
Promote 0 Bookmark 02013-03-05quote  

systemd 的原因 應該是 此gcin 是由 AP 叫出來的,AP 結束後就變成 systemd 是 parent process。

多個 XMODIFIERS 就會造成多個 gcin 被執行。如果沒有設定 XMODIFIERS,就等於 XMODIFIERS=@im=gcin

edited: 1
hyslion
6
Promote 0 Bookmark 02013-03-05quote  

eliu

systemd 的原因 應該是 此gcin 是由 AP 叫出來的,AP 結束後就變成 systemd 是 parent process。

原來如此,學到一課了。

我在想,ibus 的問題會不會是跟之前 gnome 整合 ibus有關?(只是猜測,因為我沒經驗過)

guest
7  
Promote 0 Bookmark 02013-03-05quote  

在經過一些測試後
發現通常在 kill 掉 某一個 gcin 會只剩一個
但是有時候被 kill 掉的 gcin 還是會重啟

所以目前的問題其實是 XMODIFIERS 被多次設定嗎?
那如果我將 .xprofile 裡的設定拿掉的話會正常嗎?

另外 XMODIFIERS 是 @im=ibus 是 gnome shell 造成的嗎?
我現在用 zsh 當做 shell ,我之前在 zshrc 裡加了
XMODIFIERS=@im=gcin 
不過問題好像還是沒有解決
 

guest
8
Promote 0 Bookmark 02013-03-15quote  

在 google 一下 gnome 整合 ibus 的問題後
找到了解決辦法

$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false

如此設定後 gnome 就不會動 IM 的變數了

參考: https://live.gnome.org/ThreePointFive/Features/IBus

cht電腦資訊gcin
adm Find login register
views:20700