cscript на Linux

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
tonik2003
Сообщения: 4
Зарегистрирован: Ср янв 21, 2015 11:55 am
Благодарил (а): 0
Поблагодарили: 0

cscript на Linux

Сообщение tonik2003 » Ср янв 21, 2015 11:59 am

Вот объясните мне зачем на Линухе запускаются Виндовые команды?
ведь не кроссплатформенность это
не считая того что есть вот такое

Executing (exclusive): cscript /var/www/html/rc/sapi.js 11 часов 34 минуты
Понятно что всегда будет sh: cscript: command not found

Или
/var/www/html\obj.bat ClockChime.onNewMinute
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: cscript на Linux

Сообщение sergejey » Ср янв 21, 2015 2:27 pm

А зачем они запускаются в самом деле? :)
Не запускайте и всё будет хорошо.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
tonik2003
Сообщения: 4
Зарегистрирован: Ср янв 21, 2015 11:55 am
Благодарил (а): 0
Поблагодарили: 0

Re: cscript на Linux

Сообщение tonik2003 » Чт янв 22, 2015 5:32 am

sergejey писал(а):А зачем они запускаются в самом деле? :)
Не запускайте и всё будет хорошо.
Ну как сказать - для людей не сильно разбирающихся в Linux
будет это удивлением - т.к. они запускаются из "коробки"

Я сейчас пересматриваю Ваш весь код на предмет такого счастья

Как доделаю напишу в FAQ - установка на CentOS 6.6
Кстати кому интересно прикручиваю Asterisk
ksgroup
Сообщения: 135
Зарегистрирован: Ср дек 19, 2012 10:35 am
Откуда: Ukraine/Kiev
Благодарил (а): 7 раз
Поблагодарили: 14 раз

Re: cscript на Linux

Сообщение ksgroup » Чт янв 22, 2015 8:56 am

tonik2003 писал(а):Кстати кому интересно прикручиваю Asterisk
Интересно конечно. В чем будет выражаться прикручивание? У меня слегка прикручен, но пока только на уровне сообщения Алисой номера или имени звонящего, информирования о состоянии удаленных абонентов (онлайн\оффлайн). Хотелось бы еще управлять астериском из МДМ, но пока не придумал чем именно там управлять :)
CubieBoard A10 - основной сервер Majordomo
Raspberry Pi - цифровая мини АТС ASTERISK
Arduino - блок управления реле, электросчетчик, счетчики воды, управление вентиляционной системой, СКУД.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: cscript на Linux

Сообщение sergejey » Чт янв 22, 2015 10:03 am

tonik2003 писал(а):
sergejey писал(а):А зачем они запускаются в самом деле? :)
Не запускайте и всё будет хорошо.
Ну как сказать - для людей не сильно разбирающихся в Linux
будет это удивлением - т.к. они запускаются из "коробки"
Я сейчас пересматриваю Ваш весь код на предмет такого счастья
Как доделаю напишу в FAQ - установка на CentOS 6.6
Буду рад комментариям по этому поводу -- вроде бы не должно из "коробки" так себя вести. Речь по-дефолту настроена на Гугл, так что sapi не используется. obj.bat вообще не запускается сам по себе -- его только можно использовать, если нужно (на windows разумеется). Но если что-то такое есть, то, конечно, будет лучше исправить.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: cscript на Linux

Сообщение LutsenkoDenis » Чт янв 22, 2015 5:44 pm

sergejey писал(а):А зачем они запускаются в самом деле? :)
Не запускайте и всё будет хорошо.
1. Считаю, что это неправильный подход. Что значит не запускайте, если оно запускается из коробки?
2. У меня возникает вопрос не зачем они запускаются, а что это такое, зачем оно мне и как этим пользоваться?

При определённых параметрах запускается из коробки, причина на мой взгляд тут: /lib/common.class.php
СпойлерПоказать

Код: Выделить всё

if (!defined('SETTINGS_TTS_GOOGLE') || SETTINGS_TTS_GOOGLE) {
                $google_file=GoogleTTS($ph, $lang);
           } else {
                $google_file=false;
           }

           if (!defined('SETTINGS_SPEAK_SIGNAL') || SETTINGS_SPEAK_SIGNAL=='1') {
              $passed=time()-(int)getGlobal('lastSayTime');
              if ($passed>20) { // play intro-sound only if more than 20 seconds passed from the last one
                    setGlobal('lastSayTime', time());
                    playSound('dingdong', 1, $level);
                  }
           }

           if ($google_file) {
                @touch($google_file);
                        playSound($google_file, 1, $level);
           } else {
              safe_exec('cscript '.DOC_ROOT.'/rc/sapi.js '.$ph, 1, $level);
           } 
Другими словами: Если у тебя $google_file == false, то запускается cscript. Тут на мой взгляд нужно либо делать какую-то обертку, чтоб в зависимости от OS выполнялся либо cscript или ch, либо делать проверку на тип OS перед cscript. Т.к. я не вдавался в подробности о том что такое /rc/sapi.js и надо оно мне или нет, то я просто добавил провеку OS

Код: Выделить всё

if (substr(php_uname(), 0, 7) == "Windows")
                safe_exec('cscript '.DOC_ROOT.'/rc/sapi.js '.$ph, 1, $level);
С учётом того, что MDM у меня на линуксе, то этот скрипт больше не будет выполняться. Не знаю, важно это или нет, в настройках у меня звук выключен.
з.ы. На сервере отсутствует аудио.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: cscript на Linux

Сообщение sergejey » Чт янв 22, 2015 5:51 pm

LutsenkoDenis писал(а):
sergejey писал(а):А зачем они запускаются в самом деле? :)
Не запускайте и всё будет хорошо.
1. Считаю, что это неправильный подход. Что значит не запускайте, если оно запускается из коробки?
2. У меня возникает вопрос не зачем они запускаются, а что это такое, зачем оно мне и как этим пользоваться?
При определённых параметрах запускается из коробки, причина на мой взгляд тут: /lib/common.class.php
Ок, при определённых параметрах оно может запустится и под Linux -- если принудительно отключен синтез голоса через Google или возникла ошибка получения звукового файла от того же Google-а. В виду того, что в линуке cscript-а, нету, то просто ничего не произойдёт.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: cscript на Linux

Сообщение LutsenkoDenis » Чт янв 22, 2015 6:04 pm

Полагаться на то, что "ничего не произойдет", тоже неправильно. Всех вариантов никто не знает. Если это не кросс-платформенное решение, то нужно делать проверку на тип OS и запускать только-то то что будет работать, а не полагаться на его величество случай.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
tonik2003
Сообщения: 4
Зарегистрирован: Ср янв 21, 2015 11:55 am
Благодарил (а): 0
Поблагодарили: 0

Re: cscript на Linux

Сообщение tonik2003 » Пт янв 23, 2015 11:20 am

LutsenkoDenis писал(а):
sergejey писал(а): з.ы. На сервере отсутствует аудио.
Да на данный момент тоже с этим разбираюсь
при запуске из под root mplayer /var/www/html/cached/voice/****.mp3 работает

Но начал наблюдать интересный момент если cat /etc/crontab
@reboot root /usr/bin/php /var/www/html/cycle.php
или
@reboot apache /usr/bin/php /var/www/html/cycle.php
Не работает

Но при этом
su apache -s /bin/sh -c "mplayer /var/www/html/cached/voice/*********.mp3"
Есть счастье

при этом vipw
apache:x:48:48:Apache:/var/www:/sbin/nologin
tonik2003
Сообщения: 4
Зарегистрирован: Ср янв 21, 2015 11:55 am
Благодарил (а): 0
Поблагодарили: 0

Re: cscript на Linux

Сообщение tonik2003 » Пт янв 23, 2015 11:23 am

ksgroup писал(а):
tonik2003 писал(а):Кстати кому интересно прикручиваю Asterisk
Интересно конечно. В чем будет выражаться прикручивание? У меня слегка прикручен, но пока только на уровне сообщения Алисой номера или имени звонящего, информирования о состоянии удаленных абонентов (онлайн\оффлайн). Хотелось бы еще управлять астериском из МДМ, но пока не придумал чем именно там управлять :)
Есть небольшая идея сделать управление голосом при звонке на телефон(домашний)
из МДМ можно управлять только привязкой внутренних номеров к комнатам, создание
есть что почерпнуть как это сделано в linuxmce
Ответить