Скрипты запуска под FreeBSD

Технические вопросы по UTM 5.0
Ответить
littlesavage
Сообщения: 120
Зарегистрирован: Вс ноя 22, 2009 02:41
Откуда: Чебоксары

Скрипты запуска под FreeBSD

Сообщение littlesavage »

У кого-нибудь есть нормальные скрипты запуска UTM под FreeBSD?

Не хочу в очередной раз изобретать велосипед.
Стандартные не устраивают по нескольким пунктам:

1. Не учитывают параметры rcvar из /etc/rc.conf
2. Не реализованы стандартные restart, forcestart, и т .п.
3. При остановке скрипт убивает все процессы utm5_core, а не только процесс из pid файла (прописанного в конфиге).
4. Конструкции типа ps ax | grep utm5_core | grep -v stop | grep safe | awk '{print $1}' убивают :)

littlesavage
Сообщения: 120
Зарегистрирован: Вс ноя 22, 2009 02:41
Откуда: Чебоксары

Сообщение littlesavage »

Мда. Сделал свои.
Правда, без извращений типа автоматического перезапуска и отправкой уведомлений на почту.

utm5_core:

Код: Выделить всё

#!/bin/sh
#

# PROVIDE: utm5_core
# REQUIRE: LOGIN mysql
# KEYWORD: shutdown

. /etc/rc.subr

name="utm5_core"
rcvar=`set_rcvar`

load_rc_config $name

: ${utm5_core_enable='NO'}
: ${utm5_core_app='/netup/utm5/bin/utm5_core'}
: ${utm5_core_pidfile='/var/run/utm5_core.pid'}
: ${utm5_core_conf='/netup/utm5/utm5.cfg'}


command="/usr/sbin/daemon"
command_args="${utm5_core_app} -p ${utm5_core_pidfile} -c ${utm5_core_conf}"
procname=${utm5_core_app}
pidfile=${utm5_core_pidfile}
sig_stop='USR1'
extra_commands='reload'

stop_postcmd="${name}_stop_postcmd"

utm5_core_stop_postcmd()
{
    rm -f ${pidfile}
}

run_rc_command "$1"

utm5_rfw:

Код: Выделить всё

#!/bin/sh
#

# PROVIDE: utm5_rfw
# REQUIRE: LOGIN mysql utm5_core
# KEYWORD: shutdown

. /etc/rc.subr

name="utm5_rfw"
rcvar=`set_rcvar`

load_rc_config $name

: ${utm5_rfw_enable='NO'}
: ${utm5_rfw_app='/netup/utm5/bin/utm5_rfw'}
: ${utm5_rfw_conf='/netup/utm5/rfw5.cfg'}
: ${utm5_rfw_resync_on='YES'}
: ${utm5_rfw_resync_off='NO'}

if [ -z "utm5_rfw_pidfile" ]; then
   utm5_rfw_pidfile=`/usr/bin/awk '/^[[:space:]]*pid_file=/{
      sub(/^[[:space:]]*pid_file=/,"");
      print $0;
   &#125;' < $&#123;utm5_conf&#125;`
   $&#123;utm5_rfw_pidfile&#58;='/var/run/utm5_rfw.pid'&#125;
fi

if ! checkyesno utm5_rfw_resync_on; then _resync_on="-f"; fi
if ! checkyesno utm5_rfw_resync_off; then _resync_off="-o"; fi

command="/usr/sbin/daemon"
command_args="-f $&#123;utm5_rfw_app&#125; -c $&#123;utm5_rfw_conf&#125; $_resync_on $_resync_off"
procname=$&#123;utm5_rfw_app&#125;
pidfile=$&#123;utm5_rfw_pidfile&#125;
sig_stop='USR1'

run_rc_command "$1"


Ответить