hack my life: shellアーカイブ

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すべてでエコーバックでなくなってビビッたけどね。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちshellカテゴリに属しているものが含まれています。

前のカテゴリはRubyです。

次のカテゴリはTipsです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

shell: 月別アーカイブ

Powered by Movable Type 4.0

アドセンス

MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore MoMAstore
MoMAstore
MoMAstore
MoMAstore
MoMAstore