カテゴリ: shell

AIXでアプリがこけるとTCP/IPソケットが"FIN_WAIT_2"なって自然にタイムアウトするまで消えない事が有ります。 これはソケット通信していたアプリが正常にCLOSEできなくて起こる現象ですが、AIXのデフォルトでは10分間待機してしまいます。 この死に損ないのソケットはroot権限で"rmsock"を投げることで消せます。
#  netstat -Aa | grep FIN_WAIT_2 
 5cced40   tcp     0    0  192.168.11.3.49183 bp-in-f104.g.http  FIN_WAIT_2
# rmsock 5cced40 tcpcb
これがなかなか解らなくて結構苦戦した。
このエントリーをはてなブックマークに追加

最近shellの便利さに気がついたので、ちょこちょこと小ネタを書いておくことします。 自作したアプリが激しい落ち方したり、開発中でプロセスが大量に残ってしまうことが希に有ります。 そんなときいちいち"kill"を投げるの面倒なので、shellで一発。
 $ ps -ef | grep [プロセス名] | awk '{print $2}' | xargs kill
コレで指定したプロセス一気に殺せます。 僕はこれを"minagoroshi.sh"として、ホームに置いておいたりします。 ps の出力からawkでプロセスIDだけ切り出して、その出力をkillにxargsコマンドで引数として渡します。 簡単なコマンドの組み合わせですが、意外と便利。
このエントリーをはてなブックマークに追加

仕事でshellを書いていたんですけど、エコーバックなしの標準入力ってどうやるのか解らなくて、 探しまくりました。
#!/bin/sh
echo "パスワード:\c"
read PASS
echo "入力したパスワード:\c"
echo $PASS
これじゃあ、入力したパスワードが丸見えなので、非常にかっこわるい。 調べてみたら、stty(set ty)を使えば良いらしい。
#!/bin/sh
echo "パスワード:\c"
stty -echo
read PASS
stty echo
echo
echo "入力したパスワード:\c"
echo $PASS
'stty -echo'でエコーバックをけして、'stty echo'でエコーバックするように戻せる。 初め試しに'stty -echo'だけ実行したら、CLIすべてでエコーバックでなくなってビビッたけどね。
このエントリーをはてなブックマークに追加

↑このページのトップヘ