LINUX.ORG.RU

После выполнения скрипта процессы остаются висеть в фоне

 , ,


0

2

Доброго времени суток, господа и дамы.

Пишу сейчас бота техподдержки для 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

Кажется, повисшие процессы ожидают $4. Пора покупать резиновую уточку.

like-all ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.