您好:
我的環境如下:
Ubuntu 16.04 64bit
gcin 2.8.4
每次開機後,發現會執行兩次gcin,查詢方式如下:
$ps aux | grep gcin
結果有兩個,一個是gcin,一個是 /usr/bin/gcin,兩個process的執行者都是登入的使用者,不是root
有兩個的情況下,很容易在中英混雜下造成gcin死掉,如果只有一個,就很不容易!
因為在~/下以 grep gcin * -R查詢,找不出執行的地方
請問有比較好的建議嗎?
謝謝
|
參考這一篇。只提供原因,沒有真正的解答。如果有找到解答,麻煩提供。
edited: 1
|
eliu |
參考這一篇。只提供原因,沒有真正的解答。如果有找到解答,麻煩提供。
|
謝謝,原因應該是您的線索沒錯,但是不幸的,找不到系統內 XMODIFIERS=@im=ibus 這樣設定的地方,根據觀察,系統登入前無異,但是系統登入後,就會有這樣的東西出現,再加上ps的內容,這個兩執行的gcin都是由此登入帳號所進行的,也就是說,理論上,所有的來源都指向~/目錄底下的設定,但是不幸的,仍一無所獲。
再加上ibus是無法從ubuntu單獨移除的,至少在我的Ubuntu 16.04 64bit上是這樣,它的關聯性太強,會把包括Unity的東西都刪了,還有一堆gnome的東西也一樣都會消失,雖然可以再手動裝回來,不過,一裝回來,ibus就又回歸了,總之,陰魂不散就是了!
這個問題,目前只能把第二個執行的gcin砍掉,希望有好方法的朋友能提供方案,謝了!
|
好久沒用UBUNTU試試這樣設定
Ubuntu 14.04 - Trusty Tahr - Support Library | CodeWeavers "A second solution for Ubuntu is to disable ibus input. Steps to do so: with thanks to Eduardo Coelho who posted this solution to our forums.
Open System Settings Select Language Support Change Keyboard input method system: from IBus to none Run gconf-editor and navigate to desktop/ibus/general and change the keys
org.freedesktop.ibus.general use-system-keyboard-layout false org.freedesktop.ibus.general preload-engine-mode 1
Then logout of the session and log back in. Launch the affected application and test, accents should now work as expected.
We are researching a better solution. For reference, this is bug number 11871 in our system and the new behavior of ibus is noted on Launchpad as issue 1278569 ." https://www.codeweavers.com/support/wiki/linux/faq/ubuntu/trustytahr
|
謝謝你的建議,不過,這樣的作法只能讓ibus不執行,卻同步也讓gcin無法執行,原因不明,我沒有太多的時間去處理這個問題。
目前為了免去每次開機都要去手動砍掉那多出來的gcin,乾脆寫了一個簡單的script,再配合設定快捷鍵,只要每次開機記得去快捷一下就可以,在我的ubuntu 16.04 64bit上測試無誤,需要的人可以參考後自行修改以符合自己的實際環境:
/*********************************************************
#!/bin/sh
TNR=`ps aux | grep " gcin" | grep Ss | awk '{print NR}'` CNT=`echo $TNR | awk '{print NF}'` #echo $CNT i=0 while [ $i -lt $CNT ] do PID=`ps aux | grep " gcin" | grep -m 1 Ss | awk '{print $2}'` if [ "${PID}" != "" ]; then #echo $PID STR=`strings /proc/$PID/environ | grep XMODIFIERS | cut -d '=' -f 3` #echo $STR if [ "${STR}" != "gcin" ]; then echo "kill $PID" kill -9 $PID fi else echo "No ghost gcin process been found." fi i=`expr $i + 1` done
**********************************************************/
有更好的方式歡迎再提出,謝謝!
|
環境變數應該是從這裡面 /etc/X11/xinit/xinput.d/ 來的?
|
ychao |
環境變數應該是從這裡面 /etc/X11/xinit/xinput.d/ 來的?
|
從這邊來的設定是正確的,但是找不到下面這個東西的來源:
XMODIFIERS=@im=ibus
我重新再描述一下我的情況好了:
開機登入後,
$ps aux | grep gcin
會出現1~2個gcin的process,注意,是gcin,不是/usr/bin/gcin
然後下達指令查詢:
$strings /proc/<PID>/environ | grep XMODIFIERS ->這邊PID指的是gcin的process id,而非/usr/bin/gcin的process id
就會看到:
XMODIFIERS=@im=ibus
以上,謝謝!
|
cd home, /etc /usr 然後
rgrep ibus
暴力法找
|
eliu |
cd home, /etc /usr 然後
rgrep ibus
暴力法找
|
其實我更暴力,從 "/" 去找,可能是能力不足,實在看不出個所以然來,所以放棄了,就先用上面的script頂著了。基本上,只要gcin沒有同時執行多個,掛掉的機會就少很多了。
謝謝!
|
一般會卡在 /proc,這就是我不從 / 找的原因。
|
eliu |
一般會卡在 /proc,這就是我不從 / 找的原因。
|
是的,所以我會用 --exclude-dir=PATTERN 來跳過
|
|