Обсуждение статьи "OpenMeetings - Создание видеоконференций"

Автор Graf, 22 января 2014, 11:31:41

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Graf

Цитата: timoshka от 24 февраля 2014, 16:45:40
В консоли Starting OpenMeetings...  и никаких ошибок.
sleep 10 в конце rc.local не помог.

Давай смотреть.
Измени в rc.apache-openmeetings функцию openmeetings_start()

openmeetings_start()
{
  if kill -0 "$PID" &>/dev/null; then
    echo "OpenMeetings is already running"
    return 1
  fi

  echo "Starting OpenMeetings..."
  cd /opt/apache-openmeetings
  ./red5.sh &>/dev/null & disown -h
  jobs > /123.txt
}


и в конце

#exit $?
jobs > /124.txt


Потом в  rc.local

/etc/rc.d/rc.apache-openmeetings start
jobs > /125.txt
sleep 10
jobs > /126.txt

и ребут.

После ребута у тебя в корне должно появиться 4 файла (123.txt, 124.txt, 125.txt, 126.txt).
Вот на них и поглядим.

bormant

Проще все сложить в один с пометками:
echo 1:; date; jobs > /123.txt
...
echo 2:; date; jobs >> /123.txt
...
echo 3:; date; jobs >> /123.txt
...
echo 4:; date; jobs >> /123.txt
Но в целом, не существенно.

Graf

#17
Цитата: bormant от 25 февраля 2014, 12:14:30
Проще все сложить в один с пометками:
echo 1:; date; jobs > /123.txt
...
echo 2:; date; jobs >> /123.txt
...
echo 3:; date; jobs >> /123.txt
...
echo 4:; date; jobs >> /123.txt
Но в целом, не существенно.

А при таком написании разве echo и date не в консоль уйдут, а в файл только jobs?  :scratch_one-s_head_mini:
Может лучше так?

  echo "1:" > /123.txt
  jobs >> /123.txt
......
  echo "2:" >> /123.txt
  jobs >> /123.txt
......
и т.д.

bormant

Цитата: Graf от 25 февраля 2014, 12:41:07разве
А проверить?
Не вижу смысла портянки на ровном месте разводить...

Graf

#19
Цитата: bormant от 25 февраля 2014, 14:07:33
А проверить?

А проверил... :)
потому и написал.., у меня в консоль ушли. :)

2 timoshka:
И попробуй еще изменить ./red5.sh &>/dev/null & disown -h на ./red5.sh &>/888.txt & disown -h
и нам 888.txt покажи.

bormant

Ок, исправляюсь:
(echo 1:; date; jobs) >  /123.txt
(echo 2:; date; jobs) >> /123.txt
(echo 3:; date; jobs) >> /123.txt
(echo 4:; date; jobs) >> /123.txt

timoshka

От bormant  123.txt
1:
Tue Feb 25 16:34:37 MSK 2014
2:
Tue Feb 25 16:34:38 MSK 2014
3:
Tue Feb 25 16:34:38 MSK 2014
4:
Tue Feb 25 16:34:48 MSK 2014


От Graf 123.txt
1:
[1]+  Running                 ./red5.sh &>/dev/null &
2:
[1]+  Done                    ./red5.sh &>/dev/null
3:
[1]   Done                    /sbin/ldconfig
[2]-  Running                 /usr/bin/fc-cache -f &
[3]   Done                    /usr/bin/update-mime-database /usr/share/mime > /dev/null 2> /dev/null
[4]+  Running                 /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysql/mysql.pid $SKIP $INNODB &
4:
[2]-  Done                    /usr/bin/fc-cache -f
[4]+  Running                 /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysql/mysql.pid $SKIP $INNODB &


888.txt
Running on  Linux
Unable to locate Java. Please set JAVA_HOME environment variable.

Кажется дело в том, что PATH не загрузились или JAVA ?
И как быть?

bormant

В том, что выполняется из rc.local, на переменные окружения надеяться нельзя (они ведь из /etc/profile и /etc/profile.d/*.sh обычно устанавливаются, а это случается только при входе пользователя и только для его окружения), остается только то, что сами прописали, то и будет при старте вызываемого.

timoshka

Цитата: bormant от 25 февраля 2014, 22:18:13
В том, что выполняется из rc.local, на переменные окружения надеяться нельзя (они ведь из /etc/profile и /etc/profile.d/*.sh обычно устанавливаются, а это случается только при входе пользователя и только для его окружения), остается только то, что сами прописали, то и будет при старте вызываемого.

Получается решения нет и в статье ошибка? опенмитинг заустить можно только вручную?

bormant

Почему же нельзя, никто же не запрещает сделать в rc.local, а лучше в rc.apache-openmeetings
export JAVA_HOME=...или лучшеsource /etc/profile.d/тот_файл_что_устанавливает_JAVA_HOME.sh

timoshka

Цитата: bormant от 26 февраля 2014, 18:36:59
Почему же нельзя, никто же не запрещает сделать в rc.local, а лучше в rc.apache-openmeetings
export JAVA_HOME=...или лучшеsource /etc/profile.d/тот_файл_что_устанавливает_JAVA_HOME.sh
Оба варианта не помогли. :( Правдв в 888.txt теперь только Running on  Linux, но опенмитинг не запущен.

Graf

И так, проблема имеет место быть. :(
Была (есть) возможность потестить данную проблему.
Что выяснилось:
1. (спасибо bormant) согласно статьи, в начало скрипта нужно прописать source /etc/profile.d/jdk.sh или export JAVA_HOME=/usr/lib64/java;
2. если в конце функции openmeetings_start() добавить sleep 300, то openmeetings полноценно работает 5 минут. Т.е. пока скрипт не завершился все работает.

Мои умозаключения:
Каким-то чудом red5.sh перестает работать в фоне после завершения стартового скрипта, т.е disown не срабатывает. И у меня идеи кончились, нужен трезвый взгляд.
На всякий случай сам скрипт:
#!/bin/sh

export JAVA_HOME=/usr/lib64/java

PID=$(pgrep -f 'java.*org.red5.server.Bootstrap')

openmeetings_start()
{
  if kill -0 "$PID" &>/dev/null; then
    echo "OpenMeetings is already running"
    return 1
  fi

  echo "Starting OpenMeetings..."
  cd /opt/apache-openmeetings
  ./red5.sh &>/dev/null & disown -h
  sleep 300
}

openmeetings_stop()
{
  if ! kill -0 "$PID" &>/dev/null; then
    echo "OpenMeetings is not running"
    return 1
  fi

  echo "Stopping OpenMeetings..."
  kill "$PID"
}

openmeetings_restart()
{
  openmeetings_stop
  sleep 1
  openmeetings_start
}
case "$1" in
  start)
    openmeetings_start ;;
  stop)
    openmeetings_stop ;;
  restart)
    openmeetings_restart ;;
  *)
    echo "Usage: $0 {start|stop|restart}" ;;
esac

#exit $?

bormant


Graf

Цитата: bormant от 04 марта 2014, 12:09:14
А каково содержимое red5.sh ?


#!/bin/bash

if [ -z "$RED5_HOME" ]; then.
  export RED5_HOME=`pwd`;.
fi

P=":" # The default classpath separator
OS=`uname`
case "$OS" in
  CYGWIN*|MINGW*) # Windows Cygwin or Windows MinGW
  P=";" # Since these are actually Windows, let Java know
  ;;
  Darwin*)

  ;;
  *)
  # Do nothing
  ;;
esac

echo "Running on " $OS

# JAVA options
# You can set JAVA_OPTS to add additional options if you want
# Set up logging options
LOGGING_OPTS="-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true"
# Set up security options
SECURITY_OPTS="-Djava.security.debug=failure"
export JAVA_OPTS="$LOGGING_OPTS $SECURITY_OPTS $JAVA_OPTS"

if [ -z "$RED5_MAINCLASS" ]; then
  export RED5_MAINCLASS=org.red5.server.Bootstrap
fi

# Jython options
JYTHON="-Dpython.home=lib"

for JAVA in "${JAVA_HOME}/bin/java" "${JAVA_HOME}/Home/bin/java" "/usr/bin/java" "/usr/local/bin/java"
do
  if [ -x "$JAVA" ]
  then
    break
  fi
done
 
if [ ! -x "$JAVA" ]
then
  echo "Unable to locate Java. Please set JAVA_HOME environment variable."
  exit
fi
 
export RED5_CLASSPATH="${RED5_HOME}/boot.jar${P}${RED5_HOME}/conf${P}${CLASSPATH}"
 
# start Red5
echo "Starting Red5"
exec "$JAVA" "$JYTHON" -Dred5.root="${RED5_HOME}" $JAVA_OPTS -cp "${RED5_CLASSPATH}" "$RED5_MAINCLASS" $RED5_OPTS

bormant

#29
Поставил jdk-7u51, red5-1.0.1, дописал в /etc/rc.d/rc.local
if [ -x /opt/red5-server-1.0/red5.sh ]; then
    source /etc/profile.d/jdk.sh
    cd /opt/red5-server-1.0/
    nohup /opt/red5-server-1.0/red5.sh &>> /var/log/red5.log &
    sleep 2s
fi
перегрузился, вроде бы все работает, как ожидалось, доступ по порту 5080 есть.