2004/04/27
2004/04/24
2004/04/22
2004/04/20
2004/04/18
2004/04/18
イラク誘拐の3人帰国
精神的な疲労があり、記者会見できる状態ではないとのことです。現在のイラクのような危険な状態にある地域にボランティアや取材に行くような方は行く前にある程度の命の覚悟をしているのだと思っていました。しかし、それでもあのような極限状態下のストレスを一週間以上も受け続けるのは相当な精神的な傷をうけたのでしょうね。
色々、批判もあるようですがせっかく助かった命ですからPTSDになどならないようにしっかり治療してもらいたいです。
しかし、今回は政府は自衛隊の撤退をしないことを明言して国の体裁を守り日本人を誘拐すれば要求を通せるという悪しき前例を作ることを避けることができました。
しかし、無事に解決をみた原因の一つに誘拐された彼らがイラクの人々のためにイラクに来たため、殺害などしたら誘拐犯自体に(さらに)正当性がなくなるということ。また政府は絶対不撤退を叫び誘拐再発防止の筋を通し市民団体などは撤退を主張するというこの(結果的には)絶妙な連携の賜物のおかげて八方うまくいったように思います。
2004/04/15
2004/04/14
2004/04/11
2004/04/08
2004/04/08
[LINUX] bash completion
bashで引数の補完動作を拡張させる方法がわかりました。
debianでは/etc/bash_completionに色々定義されているのでまずこれを読みこむように/etc/bash.bashrcの
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
のコメントを外して有効にするか、~/.bashrcなどから読みこむようにします。
自分で定義する場合例えばrootコマンドの引数で環境変数PATHから適当なものを補完したい場合
# root(1) completion
_root()
{
local cur conns
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
conns=$( \ls `echo $PATH | tr ':' ' '` )
if [ $COMP_CWORD -eq 1 ]; then
COMPREPLY=( $( compgen -o filenames -W "$conns" $cur ) )
fi
return 0
}
complete -F _root root
を~/.bash_completionに書いておけば、補完できる。ちなみに、/usr/share/doc/bash/completion-contrib/にいろいろ使えそうなコマンド(bitkeeperやriなど)用のスクリプトがあるのでこれらを/etc/bash_completion.d/以下においておけば使用できる。
追記(4/10)
上記のようなことしなくても/etc/bash_completionにあるbash関数_command()を使用するようにして、
complete -F _command root
すれば大丈夫です。しかし、/etc/bash_completionを読みこむとbashが遅い。。。
2004/04/02
2004/04/02
[NETWORK] [LINUX] apache2
linux 2.6でdebianのapache2を使用するとなぜかIPv6アドレスのみにしかアクセスできない。
自分でビルドしたapache2ではIPv4でも可能なので普段IPv6で生活している自分は全然気づかず、家人に指摘され初めて気づきました。両方のバイナリをstraceコマンドで追ってみると。
自分でビルドした方は
...
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(3, SOL_IPV6, 26, [0], 4) = 0
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
...
とIPV6_V6ONLYされているが、
debianのバイナリだと
etsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
とされていないためでした。
そのため、今まで
sysctl -w net/ipv6/bindv6only=1
していたのをとりあえず0にして、どうしてdebianのバイナリではIPV6_V6ONLYがsetsockoptされていないかの原因が判明するまでしのぐことにしました。