Перейти к содержимому
Local
MaйeR

Скрипт для Start, Restart, Stop Stg во Freebsd

Рекомендованные сообщения

#!/bin/sh
#
#

# PROVIDE: stargazer
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown

#
# Add the following lines to /etc/rc.conf to enable stargazer:
#
#stargazer_enable="YES"
#stargazer_flags="string" - Path to STG config dir
#

. /etc/rc.subr

name=stargazer
rcvar=`set_rcvar`

command=/usr/sbin/stargazer # Path to stargazer binary

start_postcmd="start_postcmd"

start_postcmd()
{
       ps -ax | grep $command | grep -v grep | awk '{print $1;}' > $pidfile
}

pidfile=/var/run/stargazer.pid

stop_postcmd=stop_postcmd

stop_postcmd()
{
 rm -f $pidfile
}

# set defaults

stargazer_enable=${stargazer_enable:-"NO"}
stargazer_flags=${stargazer_flags:-"/etc/stargazer"}

required_files=${stargazer_flags}/stargazer.conf

load_rc_config $name
run_rc_command "$1"

 

Если бинарник STG устанавливался не по умолчанию, то в скрипте надо заменить переменную command на свою.

 

для запуска STG надо задать в /etc/rc.conf переменные

 

stargazer_enable="YES"

stargazer_flags="/etc/stargazer" - путь до папки с конфигами, если ставился по умолчанию то можно эту строку не писать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Шото не прокатило в ответ на /usr/local/etc/rc.d/stgd start матюкнулось Starting stargazer.

DOTCONF++: realpath(/etc/stargzer/stargazer.conf) failed: No such file or directory

Директория /etc/stargazer и в ней stargazer.conf есть

:-/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Шото не прокатило в ответ на /usr/local/etc/rc.d/stgd start матюкнулось  Starting stargazer.

DOTCONF++: realpath(/etc/stargzer/stargazer.conf) failed: No such file or directory

Директория /etc/stargazer и в ней stargazer.conf есть

:-/

#
# Add the following lines to /etc/rc.conf to enable stargazer:
#
#stargazer_enable="YES"
#stargazer_flags="string" - Path to STG config dir
#

 

в /etc/rc.conf надо было написать

stargazer_enable="YES"

stargazer_flags="/etc/stargazer"

 

P.S. я немного изменил скрипт так что можешь взять новый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дык добавил сразу же, читать вроде умею :loop: , ща пробену новый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нашел где были грабли :) , вобщем строка с флагаме в rc.conf не то что ненужна а даже мешала :) достаточно stargazer_enable="YES" прописать и все будет гуд :) , кстати еще че-то непонял нафига в скрипте stargazer_enable=${stargazer_enable:-"NO"}

как по мне то

stargazer_enable=${stargazer_enable:-"YES"} будет правильнее :)

вобщем респект за скриптец :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нет то что ты гришь правильнее это есть дефолтовые значения переменных, если ты прописываешь YES то тогда в rc.conf не надо писать stargazer_enable="YES" а это не совсем true

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доработанный скрипт для старта STG после Mysql во FreeBSD

 

#!/bin/sh
#
#

# PROVIDE: stargazer
# REQUIRE: mysql
# KEYWORD: FreeBSD

#
# Add the following lines to /etc/rc.conf to enable stargazer:
#
#stargazer_enable="YES"
#stargazer_flags="string" - Path to STG config dir
#

. /etc/rc.subr

name=stargazer
rcvar=`set_rcvar`

command=/usr/local/sbin/stargazer # Path to stargazer binary

start_precmd="start_precmd"
start_postcmd="start_postcmd"

start_precmd()
{
       sleep 5
}

start_postcmd()
{
       ps -ax | grep $command | grep -v grep | awk '{print $1;}' > $pidfile
}

pidfile=/var/run/stargazer.pid

stop_postcmd=stop_postcmd

stop_postcmd()
{
 killall stargazer
 rm -f $pidfile
}

# set defaults

stargazer_enable=${stargazer_enable:-"NO"}
stargazer_flags=${stargazer_flags:-"/usr/local/etc/stargazer"}

required_files=${stargazer_flags}/stargazer.conf

load_rc_config $name
run_rc_command "$1"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
а для чего sleep 5 ?

для гарантии что mysql успеет стартануть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а не проще вставить что то вроде этого?

while [ ! "`ps ax | grep mysqld | grep -v grep`" ]; do

    sleep 2

done

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для гарантии что mysql успеет стартануть и загрузиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
а не проще вставить что то вроде этого?

while [ ! "`ps ax | grep mysqld | grep -v grep`" ]; do

     sleep 2

done

Каждый извращается на столько, на сколько позволяют его знания :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
а не проще вставить что то вроде этого?

while [ ! "`ps ax | grep mysqld | grep -v grep`" ]; do

    sleep 2

done

Так какже правильнее запустить??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 + 3

2 + 2

3 + 1

Который из этих вариантов более правилен для того, чтобы получить 4? :)

А вообще

 while [ ! "`ps ax | grep mysqld | grep -v grep`" ]; do
   sleep 2
done

Более надежен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#!/bin/sh

#

#

 

# PROVIDE: stargazer

# REQUIRE: mysql

# REQUIRE: LOGIN cleanvar

# KEYWORD: shutdown

#

# Add the following lines to /etc/rc.conf to enable stargazer:

#

#stargazer_enable="YES"

#stargazer_flags="string" - Path to STG config dir

#

 

. /etc/rc.subr

 

name=stargazer

rcvar=`set_rcvar`

 

command=/usr/sbin/stargazer # Path to stargazer binary

 

start_postcmd="start_postcmd"

 

start_postcmd()

{

ps -ax | grep $command | grep -v grep | awk '{print $1;}' > $pidfile

}

 

pidfile=/var/run/stargazer.pid

 

stop_postcmd=stop_postcmd

 

stop_postcmd()

{

rm -f $pidfile

}

 

# set defaults

 

stargazer_enable=${stargazer_enable:-"NO"}

stargazer_flags=${stargazer_flags:-"/etc/stargazer"}

 

required_files=${stargazer_flags}/stargazer.conf

 

load_rc_config $name

run_rc_command "$1"

 

У меня так всё работает, скрипт ждёт запуска скуля, проблем пока небыло

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

...
       ps -ax | grep $command | grep -v grep | awk '{print $1;}' > $pidfile
}

pidfile=/var/run/stargazer.pid
...

Stargazer умеет писать pid-файл начиная с версии 2.406. См. параметр конфига "PIDFile".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можете закидать меня камнями, но я стартую СТГ скриптом в /usr/local/etc/rc.d, вида /usr/local/bin/stargazer.

А останавливаю простым killall stargazer. У меня ещё ни разу небыло такого, чтобы это приводило к фатальным поледствиям.

И конечно я делаю резервные копии базы юзеров. :)

База файловая, FreeBSD 6.2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×