cht電腦資訊gcin
adm Find login register

如何讓gcin開機後不多次執行

Mark Chang
1 如何讓gcin開機後不多次執行
Promote 0 Bookmark 02016-07-07quote  

您好:

我的環境如下:

Ubuntu 16.04 64bit

gcin 2.8.4

每次開機後,發現會執行兩次gcin,查詢方式如下:

$ps aux | grep gcin

結果有兩個,一個是gcin,一個是 /usr/bin/gcin,兩個process的執行者都是登入的使用者,不是root

有兩個的情況下,很容易在中英混雜下造成gcin死掉,如果只有一個,就很不容易!

因為在~/下以 grep gcin * -R查詢,找不出執行的地方

請問有比較好的建議嗎?

謝謝

eliu
2
Promote 0 Bookmark 02016-07-07quote  
edited: 1
Mark Chang
3
Promote 0 Bookmark 02016-07-12quote  

eliu

參考這一篇。只提供原因,沒有真正的解答。如果有找到解答,麻煩提供。

 

謝謝,原因應該是您的線索沒錯,但是不幸的,找不到系統內 XMODIFIERS=@im=ibus 這樣設定的地方,根據觀察,系統登入前無異,但是系統登入後,就會有這樣的東西出現,再加上ps的內容,這個兩執行的gcin都是由此登入帳號所進行的,也就是說,理論上,所有的來源都指向~/目錄底下的設定,但是不幸的,仍一無所獲。

再加上ibus是無法從ubuntu單獨移除的,至少在我的Ubuntu 16.04 64bit上是這樣,它的關聯性太強,會把包括Unity的東西都刪了,還有一堆gnome的東西也一樣都會消失,雖然可以再手動裝回來,不過,一裝回來,ibus就又回歸了,總之,陰魂不散就是了!

這個問題,目前只能把第二個執行的gcin砍掉,希望有好方法的朋友能提供方案,謝了!

hepha
4
Promote 0 Bookmark 02016-07-13quote  

好久沒用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

Mark Chang
5
Promote 0 Bookmark 02016-07-14quote  

謝謝你的建議,不過,這樣的作法只能讓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

**********************************************************/

有更好的方式歡迎再提出,謝謝!

ychao
6
Promote 0 Bookmark 02016-07-14quote  

環境變數應該是從這裡面 /etc/X11/xinit/xinput.d/ 來的?

Mark Chang
7
Promote 0 Bookmark 02016-07-15quote  

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

以上,謝謝!

eliu
8
Promote 0 Bookmark 02016-07-15quote  
Mark Chang
9
Promote 0 Bookmark 02016-07-19quote  

eliu

cd home, /etc /usr 然後

rgrep ibus 

暴力法找

其實我更暴力,從 "/" 去找,可能是能力不足,實在看不出個所以然來,所以放棄了,就先用上面的script頂著了。基本上,只要gcin沒有同時執行多個,掛掉的機會就少很多了。

謝謝!

eliu
10
Promote 0 Bookmark 02016-07-19quote  
Mark Chang
11
Promote 0 Bookmark 02016-07-21quote  

eliu

一般會卡在 /proc,這就是我不從 / 找的原因。

是的,所以我會用 --exclude-dir=PATTERN 來跳過

guest
12 成因分析
Promote 0 Bookmark 02016-08-05quote  

 

導致這個現象的成因,我紀錄在 『Ubuntu TW / 討論這篇「如何讓gcin開機後不多次執行」

主要的測試過程,紀錄在 「#6

結論在「#7

 

報告完畢

Smile

 

 

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