- Wrapperスクリプトを作成
こちらの例では、コマンドの呼び出し元を調べるものです。
# cat /work/wrapper.sh
#! /bin/sh
OUTFILE=/tmp/wrapper.out
echo "### Message from Wrrapper Script ###" > $OUTFILE
echo "##### proctree #####" >> $OUTFILE
proctree $$ >> $OUTFILE
echo "##### ps #####" >> $OUTFILE
ps -ef >> $OUTFILE
echo "##### exec orig $0 $@ #####" >> $OUTFILE
"$0".copy $@
- 調査対象コマンドのコピーを作成
# cp -p /usr/bin/kill /usr/bin/kill.copy
※上記スクリプトに合わせて.copyファイルを作成
- Wrapperスクリプトをmount
# mount /work/wrapper.sh /usr/bin/kill
※後処理を忘れてもリブートで解除されるようにcpでの上書きではなくmountを使用
- コマンドを実行
# /usr/bin/kill -9 [PID]
※テスト目的のためBuildinコマンドが使用されないようにフルパスで実行
- 出力ファイルを確認
# cat /tmp/wrapper.out
ファイル内にproctreeとps -efなどの出力があることを確認
- wrapperスクリプトをumountして終了
# umount /usr/bin/kill
- コピーファイルを削除
# rm /usr/bin/kill.copy