Доброго времени суток, господа и дамы.
Пишу сейчас бота техподдержки для point.im. Бот - eventcmd-скрипт для mcabber. Работа его практически отлажена, однако, есть проблема: после прихода нужного сообщения и обработки его скриптом, в дереве процессов остаются висеть:
- tail -n 1
- egrep -oe '#[a-z]+'
- bash $HOME/.mcabber/point_support MSG OUT p@point.im
Почему эти процессы не могут завершиться за время выполнения скрипта и остаются в памяти?
Ниже сам скрипт:
#!/usr/bin/env bash
x_event=$1
x_type=$2
x_jid=$3
x_msgfile=$4
x_fifofile=$HOME'/.mcabber/fifo'
x_service='p@point.im'
x_postid=`tail -n 1 $x_msgfile | egrep -oe '#[a-z]+'`
x_nick=`sed -n "s/://;2p" $x_msgfile`
x_body=`tail -n +4 $x_msgfile | head -n -1 | sed 's:@support ::'`
x_content=`perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "From $x_nick: $x_body"`
x_credentals="login@pass"
x_title=`echo $x_body | head -c 200`
if sed -n 3p $x_msgfile | grep -oq "*bug"; then
x_kind="bug"
elif sed -n 3p $x_msgfile | grep -oq "*feature"; then
x_kind="enhancement"
else
rm $x_msgfile
exit 0
fi
if [[ $x_event == "MSG" && $x_type == "IN" ]]; then
x_ticket=`curl -r POST -u $x_credentals https://api.bitbucket.org/1.0/repositories/arts/point-issues/issues --data "title=$x_title&kind=$x_kind&content=$x_content" | grep "arts/point-issues" | cut -f 4 -d '"' | sed 's:/1.0/repositories:https\://bitbucket.org:;s:/issues:/issue:'`
echo "say_to $x_service $x_postid Спасибо, Ваш запрос по адресу $x_ticket будет рассмотрен в ближайшее время." > $x_fifofile
fi
rm $x_msgfile
exit 0