2009/07/14

debian semaphore

Python で非同期だか分散だかなんかそんな辺りをうろちょろしてまして
processing とか multiprocessing とかを見てみようかなと思いました

Python 3.0 Hacks:第5回 multiprocessingモジュールによるプロセス間通信
や、まぁ、Python 2.5 とか 2.6 なんだけど試してみようとしましたら
  File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 49, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 13] Permission denied
$
などと言われて普通のユーザーだと怒られます
root だと動くんだけど

エラーの文字列とかで検索してたんだけどどうもパッとしたもんが出なくって
そもそも SemLock って何だろうって思ったんだけど
そういえば semaphore ってあったな
debian で root なら OK って /dev 以下のことが permission のこと多いし
って思いながら検索してみて目についたのが
sourCEntral - fedora 7 - fedora かよっ

「POSIX セマフォの概要」を眺めはじめたわけですが

ファイルシステム経由での名前付きセマフォへのアクセス


Linux では、名前付きセマフォは仮想ファイ ル シ ス テ ム (virtual file system) 内に sem.name という形の名前で作成される。仮想ファイルシステム は通常 /dev/shm 以下にマウントされる。

おぉ、知らなかったよそんなこと
mount してないし!!

ということで mount してみたらちゃんと動きました
何で mount してなかったかって /etc/fstab で noauto になってました
ん〜、何か良く分からないから要らないと思って noauto したのかな〜と思い
"/dev/shm" fstab lenny で検索してみたら
etch/Software/Init - Debian GNU/Linux スレッドテンプレ
/dev/shm を自動で mount しない方法を紹介している...
ん〜、etch だけど、これ見てたのかなぁ......

Google 先生のおかげで解決できました、ありがとうございました...

0 件のコメント:

コメントを投稿