最後に、を使用してテールプロセスを見つけることができましたps
。ennuikillerからのアイデアに感謝します。
私はps
、引数からテールをgrepして、それを強制終了するために使用しました。それは一種のハックですが、うまくいきました。:)
あなたがより良い方法を見つけることができるならば、共有してください。
完全なスクリプトは次のとおりです
(最新バージョンはここにあります:http://docs.karamatli.com/dotfiles/bin/logserver)
if [ -z "$1" ]; then
echo Usage: $0 LOGFILE [PORT]
exit -1
fi
if [ -n "$2" ]; then
PORT=$2
else
PORT=9977
fi
TAIL_CMD="tail -f $1"
function kill_tail {
# find and kill the tail process that is detached from the current process
TAIL_PID=$(/bin/ps -eo pid,args | grep "$TAIL_CMD" | grep -v grep | awk '{ print $1 }')
kill $TAIL_PID
}
trap "kill_tail; exit 0" SIGINT SIGTERM
while true; do
( $TAIL_CMD & ) | nc -l -p $PORT -vvv
kill_tail
done