выполнение expect скрипта в php

235
16 апреля 2017, 02:52

Всем привет. Ситуация такая: я написал exp скрипт который подключается к telnet(OpenBSC) и выводит логи. И если запускать его в терминале, то все ок. А если запустить его через php с помощью функции exec(), ты выдается такая ошибка:

spawn /bin/bash

Для запуска exp скрипта написан bash скрипт(startExp.sh) такой:

# !/usr/bin/expect -f
/usr/bin/expect /home/megauser/script.exp

Сам exp скрипт такой:

#!/usr/bin/expect -f
set force_conservative 0  ;# set to 1 to force conservative mode even if
              ;# script wasn't run conservatively originally
if {$force_conservative} {
    set send_slow {1 .1}
    proc send {ignore arg} {
        sleep .1
        exp_send -s -- $arg
    }
}
set timeout -1
spawn $env(SHELL)
match_max 100000
expect -exact "\]0;megauser@bts: ~megauser@bts:~\$ "
send -- "telnet localhost 4242\r"
expect -exact "telnet localhost 4242\r
Trying 127.0.0.1...\r
Connected to localhost.\r
Escape character is '^\]'.\r
Welcome to the OpenBSC control interface\r
\r
Copyright (C) 2008-2016 Harald Welte, Holger Freyther\r
Contributions by Daniel Willmann, Jan Lübbe, Stefan Schmidt\r
Dieter Spaar, Andreas Eversberg, Sylvain Munaut, Neels Hofmeyr\r
\r
License AGPLv3+: GNU AGPL version 3 or later <http://gnu.org/licenses/agpl-3.0.html>\r
This is free software: you are free to change and redistribute it.\r
There is NO WARRANTY, to the extent permitted by law.\r
OpenBSC> "
send -- "logging enable \r"
expect -exact "logging enable \r
OpenBSC> "
send -- "logging filter all 1\r"
expect -exact "logging filter all 1\r
OpenBSC> "
send -- "logging level all info\r"
expect -exact "logging level all info\r
OpenBSC> "
send -- "show logging"
expect -exact "ng"
send -- " vty\r"
expect -exact " vty\r
 Global Loglevel: INFO\r
 Use color: On, Print Timestamp: Off\r
 Log Level specific information:\r
  RLL        NOTICE     Enabled  A-bis Radio Link Layer (RLL)\r
  CC         NOTICE     Enabled  Layer3 Call Control (CC)\r
  MM         NOTICE     Enabled  Layer3 Mobility Management (MM)\r
  RR         NOTICE     Enabled  Layer3 Radio Resource (RR)\r
  RSL        NOTICE     Enabled  A-bis Radio Siganlling Link (RSL)\r
  NM         INFO       Enabled  A-bis Network Management / O&M (NM/OML)\r
  MNCC       NOTICE     Enabled  MNCC API for Call Control application\r
  PAG        NOTICE     Enabled  Paging Subsystem\r
  MEAS       NOTICE     Disabled Radio Measurement Processing\r
  SCCP       NOTICE     Enabled  SCCP Protocol\r
  MSC        NOTICE     Enabled  Mobile Switching Center\r
  MGCP       NOTICE     Enabled  Media Gateway Control Protocol\r
  HO         NOTICE     Enabled  Hand-Over\r
  DB         NOTICE     Enabled  Database Layer\r
  REF        NOTICE     Disabled Reference Counting\r
  GPRS       DEBUG      Enabled  GPRS Packet Service\r
  NS         INFO       Enabled  GPRS Network Service (NS)\r
  BSSGP      DEBUG      Enabled  GPRS BSS Gateway Protocol (BSSGP)\r
  LLC        DEBUG      Enabled  GPRS Logical Link Control Protocol (LLC)\r
  SNDCP      DEBUG      Enabled  GPRS Sub-Network Dependent Control Protocol (SNDCP)\r
  NAT        NOTICE     Enabled  GSM 08.08 NAT/Multiplexer\r
  CTRL       NOTICE     Enabled  Control interface\r
  SMPP       DEBUG      Enabled  SMPP interface for external SMS apps\r
  FILTER     DEBUG      Enabled  BSC/NAT IMSI based filtering\r
  RANAP      DEBUG      Enabled  Radio Access Network Application Part Protocol\r
  SUA        DEBUG      Enabled  SCCP User Adaptation Protocol\r
  SUP        DEBUG      Enabled  SUP interface for external HLR\r
  LGLOBAL    NOTICE     Enabled  Library-internal global log family\r
  LLAPD      NOTICE     Enabled  LAPD in libosmogsm\r
  LINP       NOTICE     Enabled  A-bis Intput Subsystem\r
  LMUX       NOTICE     Enabled  A-bis B-Subchannel TRAU Frame Multiplex\r
  LMI        NOTICE     Disabled A-bis Input Driver for Signalling\r
  LMIB       NOTICE     Disabled A-bis Input Driver for B-Channels (voice)\r
  LSMS       NOTICE     Enabled  Layer3 Short Message Service (SMS)\r
  LCTRL      NOTICE     Enabled  Control Interface\r
  LGTP       NOTICE     Enabled  GPRS GTP library\r
  LSTATS     NOTICE     Enabled  Statistics messages and logging\r
  LGSUP      NOTICE     Enabled  Generic Subscriber Update Protocol\r
  LOAP       NOTICE     Enabled  Osmocom Authentication Protocol\r
 Log Filter 'ALL': Enabled\r
OpenBSC> "
send -- "exit\r"
expect -exact "exit\r
Connection closed by foreign host.\r
\]0;megauser@bts: ~megauser@bts:~\$ "
send -- ""
expect eof

uname -a:

Linux bts 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

php -v:

PHP 5.5.9-1ubuntu4.21 (cli) (built: Feb 9 2017 20:54:58) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

скрипт php такой:

<?php
    echo exec("/var/www/html/startExp.sh");
?>

Права на startExp.sh и на www-data и на script.exp: 0777

В чем может быть такая ошибка?

READ ALSO
Что за непонятная ошибка curl?

Что за непонятная ошибка curl?

пытаюсь в yii2 спарсить сайты партнеров на тему есть ли товар в наличии организовывал таким методом

210
Получить массив в переменную php

Получить массив в переменную php

ЗдравствуйтеЗадача следующая: В Базе есть ячейка с содержимым

250
PHP_сумма цифр числа

PHP_сумма цифр числа

Здравствуйте ! Может у кого-нибудь найдется время - разъяснить как работает этот код, а именно - что происходит в цикле "FOR"Если кто-нибудь разъяснит...

211