Перейти к содержимому
Калькуляторы

Автоматический запуск microdc Автоматический запуск microdc

проблема вот в чем:

 

установил microdc

вручную запускаешь, все работает, файлы которые он расшаривает видно, все в нормальной кодировке.

проблема возникает когда даешь автоматический запуск - все процессы присутствуют, но другие не видят, в логах microdc видно следующее:

18.08.2010 10:41:33 Automatically reconnecting to hub

18.08.2010 10:41:33 Connecting to hub on 0.0.0.0:0.

18.08.2010 10:41:33 Connected to hub from 0.0.0.0:0.

18.08.2010 10:41:33 Cannot receive from hub - Transport endpoint is not connected

18.08.2010 10:41:33 Shutting down hub connection.

18.08.2010 10:41:43 Automatically reconnecting to hub

18.08.2010 10:41:43 Connecting to hub on 0.0.0.0:0.

18.08.2010 10:41:43 Connected to hub from 0.0.0.0:0.

18.08.2010 10:41:43 Cannot receive from hub - Transport endpoint is not connected

18.08.2010 10:41:43 Shutting down hub connection.

 

 

и так каждые 10 секунд.

 

 

скрипт запуска (кстати может кому нибудь будет полезен):

cat /etc/init.d/mdc

#!/bin/bash

PROGRAM="microdc2"

PROG_BIN="screen -dmS microdc /usr/local/bin/microdc2 -c /root/.microdc2/config"

PID=`ps -aef | grep "$PROGRAM" | grep -v grep | awk '{print $2}'`

 

case "$1" in

start)

if [ ! -z $PID ]

then

echo -n "Daemon $PROGRAM is running"

echo ""

else

echo -n "Starting $PROGRAM: "

$PROG_BIN > /dev/null 2>&1 &

echo "Daemon $PROGRAM started. PID:$!"

echo ""

fi

;;

stop)

echo -n "Shutting down $PROGRAM: "

echo ""

for i in $PID; do

kill -9 $i

done

echo -n "$PROGRAM is down."

echo ""

;;

restart)

$0 stop

$0 start

;;

status)

STATUS=`ps -aef | grep "$PROGRAM" | grep -v grep | awk '{print $2}' | head -1`

if [ ! -z $STATUS ]

then

echo -n "Daemon $PROGRAM is running"

echo ""

for i in $PID; do

echo PID:$i

done

echo ""

else

echo -n "Daemon $PROGRAM is down."

echo ""

fi

;;

*)

echo "Usage: $PROGRAM {start|stop|restart|status}"

exit 1

esac

exit 0

 

 

но если сделать в запуск по крону например каждые 15 минут, или запускать вручную - то запускается прекрасно и работает, и в логах все ок:

18.08.2010 10:50:02 Listening on 0.0.0.0:46475.

18.08.2010 10:50:02 Connecting to hub on 172.20.1.1:411.

18.08.2010 10:50:02 Connected to hub from 172.20.1.50:50475.

18.08.2010 10:50:03 Nick accepted. You are now logged in.

18.08.2010 10:50:03 Sharing 1812768803757 bytes (1.7TiB) totally

18.08.2010 10:50:03 Sharing 1812768803757 bytes (1.7TiB) totally

18.08.2010 10:50:03 filelist_update: /srv/files directory is already shared as subfolder of existing shared tree

 

18.08.2010 10:50:03 Hub name is XXX Hub.

18.08.2010 10:50:03 Sharing 1812768803757 bytes (1.7TiB) totally

 

 

подскажите где могут быть грабли?

Изменено пользователем hoochie

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


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

18.08.2010 10:41:43 Connecting to hub on 0.0.0.0:0.

18.08.2010 10:41:43 Connected to hub from 0.0.0.0:0.

18.08.2010 10:41:43 Cannot receive from hub - Transport endpoint is not connected

Я бы предположил, что он читает не тот config-файл.

Можно попробовать вместо microdc запускать strace -o /tmp/microdc.strace -e file microdc

и смотреть в /tmp/microdc.strace, действительно ли читается то, что нужно.

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


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

от какого пользователя он запускается из скрипта автозапуска и добирается ли до своего конфига в хоме рута? Может конфиг в более другое место положить?

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


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

Спасибо всем за ответы, как проверю, так отпишу. Сейчас отправили другой задачей заниматься.

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


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

вот что по процесам после перезагрузки сервера:

ps aux|grep micro

root 884 0.0 0.1 2852 856 ? Ss 18:31 0:00 SCREEN -dmS microdc /usr/local/bin/microdc2 -c /root/.microdc2/config

root 888 0.0 0.2 4436 1528 pts/1 Ss+ 18:31 0:00 /usr/local/bin/microdc2 -c /root/.microdc2/config

root 898 0.0 0.2 4660 1124 pts/1 SN+ 18:31 0:00 /usr/local/bin/microdc2 -c /root/.microdc2/config

root 899 0.0 0.0 4280 352 pts/1 S+ 18:31 0:00 /usr/local/bin/microdc2 -c /root/.microdc2/config

root 900 0.0 0.0 4280 360 pts/1 S+ 18:31 0:00 /usr/local/bin/microdc2 -c /root/.microdc2/config

root 903 43.9 0.1 4716 936 pts/1 SN+ 18:31 0:20 /usr/local/bin/microdc2 -c /root/.microdc2/config

root 1912 33.3 0.1 3296 784 pts/0 S+ 18:31 0:00 grep micro

то есть, запущен он от рута и верный конфиг (/root/.microdc2/config)

 

но при этом в логе:

tail -f /var/log/microdc.log

19.08.2010 18:31:45 Automatically reconnecting to hub

19.08.2010 18:31:45 Connecting to hub on 0.0.0.0:0.

19.08.2010 18:31:45 Connected to hub from 0.0.0.0:0.

19.08.2010 18:31:45 Cannot receive from hub - Transport endpoint is not connected

19.08.2010 18:31:45 Shutting down hub connection.

19.08.2010 18:31:55 Automatically reconnecting to hub

19.08.2010 18:31:55 Connecting to hub on 0.0.0.0:0.

19.08.2010 18:31:55 Connected to hub from 0.0.0.0:0.

19.08.2010 18:31:55 Cannot receive from hub - Transport endpoint is not connected

19.08.2010 18:31:55 Shutting down hub connection.

19.08.2010 18:32:05 Automatically reconnecting to hub

19.08.2010 18:32:05 Connecting to hub on 0.0.0.0:0.

19.08.2010 18:32:05 Connected to hub from 0.0.0.0:0.

19.08.2010 18:32:05 Cannot receive from hub - Transport endpoint is not connected

19.08.2010 18:32:05 Shutting down hub connection.

 

как запустить strace не пойму, ведь конфиг читается при старте сервера....

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


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

microdc нужно передавать корректные значения home директории.

 

Вот как оно у нас работает (debian lenny):

 

files:/etc/init.d# cat microdc2r1
#!/bin/bash

#!/bin/sh
# Start/stop the microdc2 client and daemonize it %).
#
### BEGIN INIT INFO
# Provides:          microdc2r1
# Required-Start:    $syslog $networking
# Required-Stop:     $syslog $networking
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

. /lib/lsb/init-functions

export HOME=/opt/microdc2/r1

case $1 in
start)
  if [ -x /usr/local/bin/microdc2 ]; then
      echo  "Starting MicroDC2 RAID #1"
      cd $HOME
      /usr/bin/screen -d -m /usr/local/bin/microdc2r1 -c $HOME/config
  fi
;;

stop)
  echo  "Stopping MicroDC2 RAID #1"
  kill -9 `pidof SCREEN`
  screen -wipe
;;

restart)
  $0 stop
  sleep 5
  $0 start
;;

*)
  log_action_msg "usage: $0 {start|stop|restart}"
;;

 

Таким образом можно запускать несколько дц-ботов с раздачами на одной машине, разложив их конфиги в разные папки.

Работает второй год, сбоев не замечено. Рестарт раз в неделю делает logrotate после бекапа логов ботов.

Изменено пользователем Mallorn

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


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

я у себя сделал вот так (ОС FreeBSD 7):

в /etc/rc.local добавил

 

screen -S dcpp -d -m su - dcpp -c /usr/local/bin/microdc2

 

предварительно естественно создав пользователя dcpp.

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


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

Спасибо за ответы!

 

пробовал различные варианты, но ни один из них не сработал...:

1. запуск от пользователя : su hoochie -c 'screen -S microdc2 -d -m /usr/local/bin/microdc2 -c /home/hoochie/microdc2/config'

2. screen -d -m su -l hoochie /usr/local/bin/microdc2 -c /home/hoochie/microdc2/config

3. /usr/bin/screen -d -m /usr/local/bin/microdc2 -c /root/.microdc2/config

 

во всех трех вариантах если стартовать руками то работает(или по крону) но при старте системы не запускается(((

подскажите как я могу воспользоаться strace?

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


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

что касается strace

добавил перед командой запуска strace -o /123

перезагрузил сервер, получил вывод strace. Он во вложении. Помогите расшифровать что не так?

в файлах, которые открывает конфигурационного файла не вижу... но его также в этом выводе не вижу, если запускаю вручную

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.