forum.bitel.ru http://forum.bitel.ru/ |
|
обновление 5.1 от 5 апреля http://forum.bitel.ru/viewtopic.php?f=22&t=6665 |
Страница 1 из 1 |
Автор: | Yarlan Zey [ 06 апр 2012, 01:42 ] |
Заголовок сообщения: | обновление 5.1 от 5 апреля |
![]() в остальном работает нормально. |
Автор: | skyb [ 06 апр 2012, 06:34 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Yarlan Zey писал(а): дык а мож в скриптах чего нето? =) |
Автор: | Yarlan Zey [ 06 апр 2012, 08:22 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
и поиском по файлу и руками глядел - не нашел гугл говорит, что при компиляции явы надо использовать postfixparser вместо guiparser |
Автор: | snark [ 06 апр 2012, 16:56 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Из мана Цитата: Код: service SCRIPT COMMAND [OPTIONS] ... The SCRIPT parameter specifies a System V init script, located in /etc/init.d/SCRIPT. The supported values of COMMAND depend on the invoked script, service passes COMMAND and OPTIONS it to the init script unmodified. Что из этого Вам надо перевести? P.S. Яву вообще не надо трогать ![]() |
Автор: | Yarlan Zey [ 06 апр 2012, 17:58 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
вот это переведите Цитата: 9) Создайте службу сервера. Для этого откройте скопируйте скрипты из BGBillingServer/script в /etc/rc.d/init.d http://bgbilling.ru/v5.1/doc/ch01s04.html |
Автор: | snark [ 06 апр 2012, 19:34 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Вы копируете "скрипт" в /etc/init.d/, в результате чего у Вас лежит шелл скрипт "/etc/init.d/скрипт", который собственно и запускает/стопит службу, а комманда service только работает с этим скриптом - все! Никто не говорит о том что нельзя сделать так: Код: /etc/init.d/скрипт status что собсно и является эквивалентом Код: service скрипт status Загвоздка в том что service просто не понимает того что ей отвечает скрипт. ![]() |
Автор: | Yarlan Zey [ 06 апр 2012, 20:15 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Код: #!/bin/sh # Source function library. COMMON_FUNCTIONS=true; if [ -r /etc/init.d/functions ]; then . /etc/init.d/functions else COMMON_FUNCTIONS=false; fi if [ -z "$BGBILLING_HOME" ]; then export BGBILLING_HOME=/usr/local/BGBillingServer fi checkmysql() { ret=0 STARTTIMEOUT=30 while [ $STARTTIMEOUT -gt 0 ]; do RESPONSE=`/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping 2>&1` && break echo "$RESPONSE" | grep -q "Error checking mysql: access denied for user" && break sleep 1 let STARTTIMEOUT=${STARTTIMEOUT}-1 done if [ $STARTTIMEOUT -eq 0 ]; then ret=1 echo "Error checking mysql: timeout error occurred." fi return $ret; } mysocket=/var/lib/mysql/mysql.sock checkmysqlsocket() { ret=0 STARTTIMEOUT=30 while [ $STARTTIMEOUT -gt 0 ]; do if [ -S $mysocket ]; then break fi sleep 1 let STARTTIMEOUT=${STARTTIMEOUT}-1 done if [ $STARTTIMEOUT -eq 0 ]; then ret=1 echo "Error checking mysql: timeout error occurred." fi return $ret; } #depend() { # need mysqld #} start() { echo -n $"Starting $prog: " $BGBILLING_HOME/$serverstart RETVAL=$? if [ $COMMON_FUNCTIONS == true ]; then if [ $RETVAL -eq 0 ]; then action $"" /bin/true else action $"" /bin/false fi else echo "OK"; fi # [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename } stop() { echo -n $"Stopping $prog: " if [ $COMMON_FUNCTIONS == true ]; then status -p $BGBILLING_HOME/.run/$prog.pid $prog > /dev/null STVAL=$? if [ $STVAL -eq 0 ]; then action $"" /bin/true else action $"process not found " /bin/false fi fi $BGBILLING_HOME/$serverstop RETVAL=$? } restart() { stop start } bgstatus() { if [ $COMMON_FUNCTIONS == true ]; then status -p $BGBILLING_HOME/.run/$prog.pid $prog STVAL=$? if [ $STVAL -eq 0 ]; then action $"" /bin/true else action $"process not found " /bin/false fi fi $BGBILLING_HOME/$serverstatus } вот меня и интересует почему у меня не воспринимается полностью этот скрипт |
Автор: | barguzin2 [ 06 апр 2012, 20:31 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Вот эта строчка ему не нравится Код: status -p $BGBILLING_HOME/.run/$prog.pid $prog В /etc/init.d есть еще факлик functions. Найди в нем функцию status(). Можешь её показать ? Похоже что она у тебя какая-то другая. |
Автор: | Yarlan Zey [ 06 апр 2012, 21:34 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Код: status() { # Test syntax. if [ $# = 0 ]; then msg_usage "status [options]... {program}" return 1 fi local BASENAME CMDNAME DISPNAME EXPECT FLAGS LOCKFILE PIDFILE WHICH # Process options. CMDNAME= DISPNAME= EXPECT= LOCKFILE= PIDFILE= while [ "$1" != "${1##-}" ]; do case "$1" in --) shift break ;; --displayname) shift DISPNAME="$1" shift ;; --expect-user) shift EXPECT="$1" shift ;; --lockfile) shift LOCKFILE="$1" shift ;; --name) shift CMDNAME="$1" shift ;; --pidfile) shift PIDFILE="$1" shift ;; *) echo "status: unrecognized option: $1" >&2 return 1 ;; esac done # We need the absolute pathname for /proc/*/exe checks. if [ -z "$1" ]; then msg_usage "status [options]... {program}" return 1 fi WHICH="$(absolute "$1")" || return 1 [ -n "$CMDNAME" ] && BASENAME="$(basename "$CMDNAME")" || BASENAME="$(basename "$1")" || return 1 [ -n "$DISPNAME" ] || DISPNAME="$BASENAME" # Try to guess the PID file if one isn't specified manually. if [ -z "$PIDFILE" ]; then PIDFILE="/var/run/$BASENAME.pid" test -f "$PIDFILE" || PIDFILE= elif [ "$PIDFILE" = none ]; then PIDFILE= fi if [ -n "$CMDNAME" -a -z "$PIDFILE" ]; then echo "status: --name is set but --pidfile is not set" >&2 return 1 fi # Actually determine the status. FLAGS="--stop --test" [ -z "$CMDNAME" ] && FLAGS="$FLAGS --exec $WHICH --user-fallback-to-name" || FLAGS="$FLAGS --name $CMDNAME" [ -z "$PIDFILE" ] || FLAGS="$FLAGS --pidfile $PIDFILE" [ -z "$EXPECT" ] || FLAGS="$FLAGS --user $EXPECT" start-stop-daemon $FLAGS >/dev/null # Report it. if [ $? -eq 0 ]; then echo "$DISPNAME is running" return 0 fi if [ -n "$PIDFILE" -a -f "$PIDFILE" ]; then echo "$DISPNAME is dead, but stale PID file exists" return 1 fi [ -n "$LOCKFILE" ] || LOCKFILE="/var/lock/subsys/$BASENAME" if [ -f "$LOCKFILE" ]; then echo "$DISPNAME is dead, but subsystem is locked" return 2 fi echo "$DISPNAME is stopped" return 3 } -p на --pidfile менял теперь ругается, что процесс не найден сразу заранее сообщаю: EXPECT-user добавлял - не помогло пид файл существует по этому пути и права есть переименуйте тему в "грабли сертифицированного альтлинукса" |
Автор: | snark [ 06 апр 2012, 22:34 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Пойдем иным путем ... Кто нибудь видит в приведенном выше скрипте конструкцию в духе этой: Код: case "$1" in start) комманда для start ;; stop) комманда для stop ;; restart) stop start ;; status) комманда для status ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 ;; esac status (параметр для скрипта, а не комманда status) скрипт не обрабатывает. Либо (до|пере)писывайте, либо перестаньте хотеть от скрипта странного. P.S. Первый кто заикнется про то что со скриптами БГБ не работает chkconfig получит в глаз! |
Автор: | snark [ 06 апр 2012, 22:41 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Для того чтобы было понятнее о чем я вообще говорю - сравните скрипт у БГБ и, например, вот этот, работающий, скрипт: Код: # cat /etc/init.d/atd
#!/bin/bash # # /etc/rc.d/init.d/atd # # Starts the at daemon # # chkconfig: 345 95 5 # description: Runs commands scheduled by the at command at the time \ # specified when at was run, and runs batch commands when the load \ # average is low enough. # processname: atd # Source function library. . /etc/init.d/functions # pull in sysconfig settings [ -f /etc/sysconfig/atd ] && . /etc/sysconfig/atd test -x /usr/sbin/atd || exit 0 RETVAL=0 # # See how we were called. # prog="atd" start() { # Check if atd is already running if [ ! -f /var/lock/subsys/atd ]; then echo -n $"Starting $prog: " daemon /usr/sbin/atd $OPTS && success || failure RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/atd echo fi return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc /usr/sbin/atd RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/atd echo return $RETVAL } restart() { stop start } reload() { restart } status_at() { status /usr/sbin/atd } case "$1" in start) start ;; stop) stop ;; reload|restart) restart ;; condrestart) if [ -f /var/lock/subsys/atd ]; then restart fi ;; status) status_at ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" exit 1 esac exit $? exit $RETVAL |
Автор: | Yarlan Zey [ 06 апр 2012, 22:55 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
snark, внимательно читай прежде чем язвить. хоть погляди в выложенный 5.1 на сайте я привел скрипт, где конкретно есть опция, которая не завелась Код: #!/bin/sh # chkconfig: - 98 02 # description: bgbilling daemon # processname: bgbilling . /etc/init.d/bgcommonrc prog="bgbilling" serverstart=server_start.sh serverstop=server_stop.sh serverstatus=server_status.sh case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) bgstatus ;; *) echo "Usage: $0 start | stop | restart | status" >&2 exit 1 ;; esac держи, если легче стало оба скрипта взяты с сайта бг и никак не придуманы самостоятельно. ![]() |
Автор: | snark [ 07 апр 2012, 12:50 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Yarlan Zey писал(а): snark, внимательно читай прежде чем язвить Я это и делаю. Внимательно сравниваем это: Yarlan Zey писал(а): Код: #!/bin/sh # chkconfig: - 98 02 # description: bgbilling daemon # processname: bgbilling . /etc/init.d/bgcommonrc prog="bgbilling" serverstart=server_start.sh serverstop=server_stop.sh serverstatus=server_status.sh case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) bgstatus ;; *) echo "Usage: $0 start | stop | restart | status" >&2 exit 1 ;; esac и это: Yarlan Zey писал(а): Код: #!/bin/sh # Source function library. COMMON_FUNCTIONS=true; if [ -r /etc/init.d/functions ]; then . /etc/init.d/functions else COMMON_FUNCTIONS=false; fi if [ -z "$BGBILLING_HOME" ]; then export BGBILLING_HOME=/usr/local/BGBillingServer fi checkmysql() { ret=0 STARTTIMEOUT=30 while [ $STARTTIMEOUT -gt 0 ]; do RESPONSE=`/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping 2>&1` && break echo "$RESPONSE" | grep -q "Error checking mysql: access denied for user" && break sleep 1 let STARTTIMEOUT=${STARTTIMEOUT}-1 done if [ $STARTTIMEOUT -eq 0 ]; then ret=1 echo "Error checking mysql: timeout error occurred." fi return $ret; } mysocket=/var/lib/mysql/mysql.sock checkmysqlsocket() { ret=0 STARTTIMEOUT=30 while [ $STARTTIMEOUT -gt 0 ]; do if [ -S $mysocket ]; then break fi sleep 1 let STARTTIMEOUT=${STARTTIMEOUT}-1 done if [ $STARTTIMEOUT -eq 0 ]; then ret=1 echo "Error checking mysql: timeout error occurred." fi return $ret; } #depend() { # need mysqld #} start() { echo -n $"Starting $prog: " $BGBILLING_HOME/$serverstart RETVAL=$? if [ $COMMON_FUNCTIONS == true ]; then if [ $RETVAL -eq 0 ]; then action $"" /bin/true else action $"" /bin/false fi else echo "OK"; fi # [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename } stop() { echo -n $"Stopping $prog: " if [ $COMMON_FUNCTIONS == true ]; then status -p $BGBILLING_HOME/.run/$prog.pid $prog > /dev/null STVAL=$? if [ $STVAL -eq 0 ]; then action $"" /bin/true else action $"process not found " /bin/false fi fi $BGBILLING_HOME/$serverstop RETVAL=$? } restart() { stop start } bgstatus() { if [ $COMMON_FUNCTIONS == true ]; then status -p $BGBILLING_HOME/.run/$prog.pid $prog STVAL=$? if [ $STVAL -eq 0 ]; then action $"" /bin/true else action $"process not found " /bin/false fi fi $BGBILLING_HOME/$serverstatus } "Найдите 10 отличий"(с) Различия более чем очевидны ![]() |
Автор: | Phricker [ 07 апр 2012, 13:40 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
так это два разных скрипта bgbilling bgcommonrc Кстати я для себя сделал и диалап и ipn и voip в виде Код: [root@lia ~]# cat /etc/init.d/bgipn #!/bin/sh # chkconfig: - 98 02 # description: bgipn daemon # processname: bgipn prog="bgipn" serverstart=netflow_start.sh serverstop=netflow_stop.sh serverstatus=netflow_status.sh # Source function library. COMMON_FUNCTIONS=true; if [ -r /etc/init.d/functions ]; then . /etc/init.d/functions else COMMON_FUNCTIONS=false; fi export JAVA_HOME=/usr/java/default if [ -z "$BGIPN_HOME" ]; then export BGIPN_HOME=/opt/BG/BGIPNNetflowCollector fi start() { echo -n $"Starting $prog: " $BGIPN_HOME/$serverstart RETVAL=$? if [ $COMMON_FUNCTIONS == true ]; then if [ $RETVAL -eq 0 ]; then action $"" /bin/true else action $"" /bin/false fi else echo "OK"; fi # [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename } stop() { echo -n $"Stopping $prog: " if [ $COMMON_FUNCTIONS == true ]; then status -p $BGIPN_HOME/.run/$prog.pid $prog > /dev/null STVAL=$? if [ $STVAL -eq 0 ]; then action $"" /bin/true else action $"process not found " /bin/false fi fi $BGIPN_HOME/$serverstop RETVAL=$? } restart() { stop start } bgstatus() { if [ $COMMON_FUNCTIONS == true ]; then status -p $BGIPN_HOME/.run/$prog.pid $prog STVAL=$? if [ $STVAL -eq 0 ]; then action $"" /bin/true else action $"process not found " /bin/false fi fi $BGIPN_HOME/$serverstatus } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) bgstatus ;; *) echo "Usage: $0 start | stop | restart" >&2 exit 1 ;; esac[root@lia ~]# Правда еще пришлось добавить в их скрипты чтобы создавались pid файлы. Но это уже мелочи ![]() Зато у меня теперь красиво пишет OK или FAILED xD |
Автор: | Yarlan Zey [ 07 апр 2012, 14:20 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
snark писал(а): Я это и делаю."Найдите 10 отличий"(с) Различия более чем очевидны ![]() Phricker писал(а): так это два разных скрипта bgbilling bgcommonrc дайте лучше мне кто-нибудь functions, который понимает -p. я его задействую |
Автор: | barguzin2 [ 07 апр 2012, 15:11 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
snark, тут схема следующая: скрипт bgbilling цепляет bgcommonrc первый вызывает функцию bgstatus, которая находится во втором. второй в свою очередь цепляет файл /etc/init.d/functions и уже оттуда вызывает функцию status(). Вот на ней то всё и спотыкается. Yarlan Zey, ты не подменяй стандатную функцию status(). Лучше посмотри другие инит-скрипты по аналогии переделай БГ-шный bgcommonrc. Или попробуй заменить функцию bgstatus() на следующую Код: bgstatus() {
if [ -f $BGBILLING_HOME/.run/$prog.pid ]; then PID=`cat $BGBILLING_HOME/.run/$prog.pid` if [ -f /proc/$PID/exe ]; then action $"$prog (pid $PID) running..." /bin/true $BGBILLING_HOME/$serverstatus else action $"$prog process died, but pid-file exists " /bin/false fi else action $"$prog process not found " /bin/false fi } |
Автор: | barguzin2 [ 07 апр 2012, 15:18 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Кстати, в дефолтном скрипте bgcommonrc строчку Код: $BGBILLING_HOME/$serverstatus нужно перенести по хорошему в оператор условия после строчки Код: action $"" /bin/true а то если сервер остановлен - эта команда всё равно запускается, тупит и выдает java.net.SocketTimeoutException: Receive timed out
|
Автор: | Yarlan Zey [ 07 апр 2012, 15:41 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
barguzin2 писал(а): Yarlan Zey, ты не подменяй стандатную функцию status(). Лучше посмотри другие инит-скрипты по аналогии переделай БГ-шный bgcommonrc. я не хочу подменять. я просто вместо штатного functions в скрипте определю другой файл functions2 переделывал по аналогии. пишет процесс не найден подменли бгстатус на вышепредложенный, выдает: bgbilling process died, but pid-file exists хотя биллинг работает, и хорошо |
Автор: | Phricker [ 07 апр 2012, 17:00 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
barguzin2 писал(а): строчку нужно перенести по хорошему в оператор условия после строчки Хых. Спасибо ![]() ![]() |
Автор: | dimOn [ 09 апр 2012, 11:34 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
О чём речь то вообще? Там же просто пример скриптов исключительно под System V, а не какой-то окончательный работающий механизм. Ясно понятно, что будет работать только в очень некоторых линуксах. Никто эти скрипты на альтлинуксе не проверял. |
Автор: | Yarlan Zey [ 09 апр 2012, 13:34 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
да? а я думал, что это полностью работающая и унифицированная система. только зря кипеш поднимал ![]() |
Автор: | skyb [ 09 апр 2012, 15:26 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
На пятом альте и пятом бг у меня все работало замечательно |
Автор: | Yarlan Zey [ 09 апр 2012, 15:38 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
а с шестым все веселее |
Автор: | skyb [ 09 апр 2012, 16:35 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Yarlan Zey писал(а): а с шестым все веселее Зато он сертифицирован ![]() |
Автор: | Yarlan Zey [ 09 апр 2012, 18:44 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
кста, на пятом может и не замечал сообщение про опцию? так то бг работает хорошо. |
Автор: | dimOn [ 10 апр 2012, 11:09 ] |
Заголовок сообщения: | Re: обновление 5.1 от 5 апреля |
Yarlan Zey писал(а): да? а я думал, что это полностью работающая и унифицированная система. только зря кипеш поднимал ![]() ну инструкция там явно под system v, не так ли? К слаке, арчу итд итп + их производным уже неприменимо. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |