LINUX.ORG.RU

Chroot окружение не резолвит хост (нет доступа в сеть)

 , ,


0

2

Здравствуйте. есть приложение. запускается в Chroot. не может получить доступ в сеть. Стартую скрипт autostart.sh

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

ACE_DIR=$(readlink -f $(dirname $0))
ACE_ARG="--client-console" 

if [ -f $ACE_DIR/acestream-user.conf ]; then
  . $ACE_DIR/acestream-user.conf
  if [ -n "$ACE_USER_ARG" ]; then
    ACE_ARG="$ACE_ARG $ACE_USER_ARG"
  fi
fi
$ACE_DIR/acestream.start $ACE_ARG

Который в свою очередь запускает этот скрипт:

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

ACEADDON=$(readlink -f $(dirname $0))
ACECHROOT="androidfs"

if ! [ $(id -u) = 0 ]; then
        PERMISSION=sudo
fi

if mount | grep -E "( $ACEADDON/$ACECHROOT/proc | $ACEADDON/$ACECHROOT/sys | $ACEADDON/$ACECHROOT/dev )" >/dev/null; then

     $PERMISSION pkill -9 -f "/system/data/data/org.acestream.engine/files/python/bin/python" &>/dev/null
     $PERMISSION pkill -9 -f "/system/bin/acestream.sh" &>/dev/null
     $PERMISSION umount $ACEADDON/$ACECHROOT/proc
     $PERMISSION umount $ACEADDON/$ACECHROOT/sys
     $PERMISSION umount $ACEADDON/$ACECHROOT/dev
     sleep 2
fi

$PERMISSION mkdir -p $ACEADDON/$ACECHROOT/dev
$PERMISSION mkdir -p $ACEADDON/$ACECHROOT/proc
$PERMISSION mkdir -p $ACEADDON/$ACECHROOT/sys

$PERMISSION mount -o bind /dev $ACEADDON/$ACECHROOT/dev &>/dev/null
$PERMISSION mount -t proc proc $ACEADDON/$ACECHROOT/proc &>/dev/null
$PERMISSION mount -t sysfs sysfs $ACEADDON/$ACECHROOT/sys &>/dev/null

$PERMISSION chroot $ACEADDON/$ACECHROOT /system/bin/sh -c "cd /system/data/data/org.acestream.engine/files ; /system/bin/acestream.sh" > $ACEADDON/acestream.log 2>&1 - << EOF

from acestreamengine import Core

params = "$@".split(' ')
if params == ['']:
    params = []

Core.run(params)
EOF

В логе ошибка

gaierror: [Errno 7] No address associated with hostname

Прошу совета.

В chroot должен быть свой resol.conf в /etc с настройками DNS.

Black_Shadow ★★★★★ ()
Ответ на: комментарий от Black_Shadow

В chroot должен быть свой resol.conf в /etc с настройками DNS.

Есть там файл. только толку мало.

nameserver 8.8.8.8
nameserver 8.8.4.4

Apophis ()
Ответ на: комментарий от Apophis

оно у тебя глобально не работает? Есть dig или nslookup в чрут окружении. Или это питоны проблемы?

ving2 ()
Ответ на: комментарий от Black_Shadow

Покажи как работает dig или nslookup внутри chroot.

С радостью. только я ещё не знаю как туда войти. это всё скрипты делают запускают.

Apophis ()
Ответ на: комментарий от Apophis

Как вариант, поправь скрипт, чтобы он запускал не acestream.sh, а nslookup.

Black_Shadow ★★★★★ ()
Ответ на: комментарий от Apophis

в скрипте у тебя чрутится так:

#chroot $ACEADDON/androidfs
в этой переменной $ACEADDON - полный путь до скрипта вроде.

ving2 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.