時常有些機會寫了需要存取單一檔案且耗時許久的 shell script, 為了避免重複執行相同的 script 而覆蓋單一檔案,為了避免 race condition,必須查看是否已經執行了另外一隻程式,這些確認過程其實相當繁雜。

若寫過 C 語言,便知道有個函數是 flock (2),這個函式可以幫你在檔案上做 “advisory lock” (意思是,其他程式可以忽略你所下達的 lock 指令,而逕行複寫),但若你只是需要讓自己的程式知道檔案已被鎖住使用中,這倒是非常好用的函數。

Debian 系統中在新一點的 util-linux-ng加入flock (1) 指令,於是可以在 shell script 中如此鎖定特定檔案,如此便可避免單一程式重複執行、或複寫到同一個檔案。

#!/bin/shLOCKFILE=/tmp/script.lock
(
flock -n -x 200
if [ $? -ne 0 ] ;then
echo "The script is running already. bye"
exit
fi
date -R
read
) 200> ${LOCKFILE}

這是一篇 Tips.

今日設定了一個新的 Trac host, 為了方便眾人使用,期待預設用單一帳號登入,但是由於該組織使用的 LDAP Server 必須接上 VPN 才能存取,頗為不便。

貪圖省事的前提下,打算讓所有使用者都透過 POP3 Server 認證,由於 POP3 Server 已經接上 LDAP Server 作單一認證,因此最終還是可以使用單一帳號、密碼存取服務。

Continue reading

昨天又在裝 Debian SID 的筆記型電腦上玩起 GoogleEarth,不之為什麼預設的字型非常的小,透過設定介面無法修改介面字型。

追了一下發現這版 (0.4.3) 的還是用 QT3,使用 qtconfig-qt3 修改也無效。經過搜尋一番,知道了原來是直接修改設定檔即可,設定檔如

echo 12 > ~/.googleearth/Registry/google/googleearthplus/User/render/guifontsize

原本的預設設定是 ‘8’.

據說 Windows 版本的預設字型在繁體中文界面下也是醜陋的,修改方式是改

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
“GuiFontFamily”=”微軟正黑體”
“GuiFontSize”=dword:0000000A”

微軟正黑體看來是比較適合的字型。也可以自己修成其他的字型囉。這是一篇 Tips.

不知怎麼回事,自從某次升級之後,Gnome/GTK+ 預設的 Font DPI 就被改成 106,在我 Thinkpad X60 的小小 12″ 螢幕上看起來實在是無比巨大。

於是在 ‘系統/偏好管理/Apperance/Fonts/詳細設定/解析度’ 中把 DBI 改成 75,並一併將字型大小也都設為 12。於是這麼一來 Gnome 與相關的 GTK+ 程式看起來便順眼多。

但後遺症是 Debian 下的 Icedove (Thunderbird) 居然預設用了相當小的字型,郵件內容視窗倒還是可以手動調整字型,但是選單列與郵件列表則呈現了一種不可思議糊成一團的字型。 Continue reading

近日拜訪了幾個多媒體網站,發現 Debian 下的 GNU IceWeasel (GNU IceWeasel 是 FreeFirefox) 預設開啟的軟體是 Totem.

Totem 運作的還不錯,可惜的是某些檔案格式還是沒有 mplayer 處理的好。所以還是來改了一下預設的軟體吧

  • 作法是在瀏覽器列地址列鍵入 “about:config”
  • 在任一的設定值上按下右鍵,並選擇 “New” 與 “String”
  • 鍵入 “network.protocol-handler.app.mms”
  • 輸入欲使用的軟體指令名稱或全部路徑- 如 gmplayer 或 xinekaffeine
  • 再按下右鍵,並選擇 “New” 與 “Boolean”
  • 鍵入 “network.protocol-handler.external.mms”
  • 下一個視窗中選擇 “True”

如此即可。:-) 這是一篇 Tip.