Запуск Linux-команд из Wine

WINE@Etersoft, "1С","Ананас" и прочие проекты

Модератор: Модераторы разделов

shtorm007
Сообщения: 4

Запуск Linux-команд из Wine

Сообщение shtorm007 »

Здравствуйте. Подскажите, как запустить Linux-команды из wine (1.0.8 network). Точнее, написан скрипт получения и отправки данных на фтп-сервер. Данные по фтп и сам макрос написаны в .netrc. Проблема в том, что нужно скрипты запуска прописать в 1с, для обмена. Из самого линукса скрипты отрабатывают, а в вайне - бесполезно. Из проводника wine тоже не запустилось. Пробовал дать расширение файлам. Бесполезно.
Посоветуйте, как можно решить проблему.
Спасибо сказали:
Аватара пользователя
VAA
Сообщения: 224
ОС: Deep Style / Slackware

Re: Запуск Linux-команд из Wine

Сообщение VAA »

shtorm007 писал(а):
15.12.2008 20:55
Здравствуйте. Подскажите, как запустить Linux-команды из wine (1.0.8 network). Точнее, написан скрипт получения и отправки данных на фтп-сервер. Данные по фтп и сам макрос написаны в .netrc. Проблема в том, что нужно скрипты запуска прописать в 1с, для обмена. Из самого линукса скрипты отрабатывают, а в вайне - бесполезно. Из проводника wine тоже не запустилось. Пробовал дать расширение файлам. Бесполезно.
Посоветуйте, как можно решить проблему.

А если наоборот?
Из линуксового скрипта запускать команды линукса в перемежку с командами Wine? В том числе и с bat файлами?

P.S. Рекомендую глянуть http://www.winehq.org/site/docs/wineusr-gu...nd-line-options
А может и дальше.
Registered Linux user number 436365
Спасибо сказали:
arahorn
Сообщения: 41
ОС: Slackware 11

Re: Запуск Linux-команд из Wine

Сообщение arahorn »

shtorm007 писал(а):
15.12.2008 20:55
Здравствуйте. Подскажите, как запустить Linux-команды из wine (1.0.8 network). Точнее, написан скрипт получения и отправки данных на фтп-сервер. Данные по фтп и сам макрос написаны в .netrc. Проблема в том, что нужно скрипты запуска прописать в 1с, для обмена. Из самого линукса скрипты отрабатывают, а в вайне - бесполезно. Из проводника wine тоже не запустилось. Пробовал дать расширение файлам. Бесполезно.
Посоветуйте, как можно решить проблему.


Честно говоря не совсем понял сути проблемы. Если требуется запускать линукс-скрипт из виндоус приложения под wine, то скрипт должен быть исполняемым и размещаться в месте известном вайну. Далее его можно стартовать из виндоус приложений (я экспериментировал с 7-й 1С) стандартными средствами для запуска внешних приложений. Если наоборот, то в баше строка типа wine ~/wine_c/Program\ Files/1Cv77/BIN/1cv7s.exe таки прекрасно запустит туже самую 1С-ку (естественно только если "сеанс" запущен).
Спасибо сказали:
shtorm007
Сообщения: 4

Re: Запуск Linux-команд из Wine

Сообщение shtorm007 »

arahorn писал(а):
16.12.2008 02:09
shtorm007 писал(а):
15.12.2008 20:55
Здравствуйте. Подскажите, как запустить Linux-команды из wine (1.0.8 network). Точнее, написан скрипт получения и отправки данных на фтп-сервер. Данные по фтп и сам макрос написаны в .netrc. Проблема в том, что нужно скрипты запуска прописать в 1с, для обмена. Из самого линукса скрипты отрабатывают, а в вайне - бесполезно. Из проводника wine тоже не запустилось. Пробовал дать расширение файлам. Бесполезно.
Посоветуйте, как можно решить проблему.


Честно говоря не совсем понял сути проблемы. Если требуется запускать линукс-скрипт из виндоус приложения под wine, то скрипт должен быть исполняемым и размещаться в месте известном вайну. Далее его можно стартовать из виндоус приложений (я экспериментировал с 7-й 1С) стандартными средствами для запуска внешних приложений. Если наоборот, то в баше строка типа wine ~/wine_c/Program\ Files/1Cv77/BIN/1cv7s.exe таки прекрасно запустит туже самую 1С-ку (естественно только если "сеанс" запущен).


В том то и проблема, что скрипт исполняемый, права выставлены. Из MC все запускается, обмен с фтп проходит. А вот из 1с средствами запуска внешнего приложения ничего не получается. Директория со скриптами вайну известна - ~/wine_c/
Спасибо сказали:
arahorn
Сообщения: 41
ОС: Slackware 11

Re: Запуск Linux-команд из Wine

Сообщение arahorn »

shtorm007 писал(а):
15.12.2008 20:55
В том то и проблема, что скрипт исполняемый, права выставлены. Из MC все запускается, обмен с фтп проходит. А вот из 1с средствами запуска внешнего приложения ничего не получается. Директория со скриптами вайну известна - ~/wine_c/


забавно, завтра если к тому моменту не разберетесь скину работоспособный код с которым из 1С запускаю линуксовые скрипты, сегодня уже ухожу с работы
Спасибо сказали:
arahorn
Сообщения: 41
ОС: Slackware 11

Re: Запуск Linux-команд из Wine

Сообщение arahorn »

shtorm007 писал(а):
15.12.2008 20:55
В том то и проблема, что скрипт исполняемый, права выставлены. Из MC все запускается, обмен с фтп проходит. А вот из 1с средствами запуска внешнего приложения ничего не получается. Директория со скриптами вайну известна - ~/wine_c/


вот примеры

это примерный вызов из 1С 7.7 скрипта, примерный потому что код долго объяснять да и выуживать из него нецензурные комментарии и переменные лень

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

Параметр1 = "Параметр1";

Параметр2 = "Параметр2";

Параметр3 = "Параметр3";

СтрокаКоманды = КаталогИБ()+"synce-pls.ras "+Параметр1+" "+Параметр2+" "+Параметр3;

КомандаСистемы(СтрокаКоманды);


теперь текст скрипта synce-pls.ras

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

#!/bin/bash

PREFIX=~/.wine/dosdevices/

PIDFILE=${PREFIX}$3

echo $$ > $PIDFILE

synce-pls $1 | cut -b 46- > ${PREFIX}$2

rm $PIDFILE


скрипт естественно располагается в каталоге базы, расширение может быть произвольным, следует обращать внимание при написании подобного рода связок на три вещи:
1. регистр, то есть W:\katalogbazi\ если просто преобразовать не отслеживая регистр W во что то вроде /home/user/.wine/dosdevices/W:/katalogbazi то это почти наверняка не пройдет, мне пришлось преобразовывать регистр
2. естественно помнить что \ это в виндоус приложениях а / в линуксе
3. у меня возникли проблемы с тем что КомандаСистемы() запустившая башевский скрипт не дожидалась окончания его выполнения, пришлось делать костыль

а вот скрипт который запускает автообмены 7-й 1С-ки под вайном, естественно он работает только в случае если "запущен сеанс", ну то есть так или иначе графическая часть 7-й 1С-ки должна быть убеждена что на нее кто то может смотреть

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

#!/bin/bash

RABKATALOG=~/.tasks/complexall

LOCKFILE=$RABKATALOG/lock.pid

FTPSERVER=<adresftp>

REMOTECATALOG=/

FILENAMEVH=A010.zip

BASA1C=w:\\bases77\\complexall\\

BASA1CLIN=/mnt/sharecifs/bases77/complexall/

FILENAMEISH=${BASA1CLIN}Avtoobmen/A011.zip

NAMEFTP=<nameftp>

PASSWORDFTP=<passwordftp>

IMYA1C=<name1c>

PASSWORD1C=<pass1c>

if [ -e $LOCKFILE ]; then
    echo predidushaya zadacha ne zavershilas
    exit
fi

echo $$ > $LOCKFILE

ncftpget -E -Z -v -u $NAMEFTP -p $PASSWORDFTP $FTPSERVER  ${BASA1CLIN}Avtoobmen/ $FILENAMEVH

wine ~/wine_c/Program\ Files/1Cv77/BIN/1cv7s.exe config /d$BASA1C /n$IMYA1C /p$PASSWORD1C /@${BASA1C}\\Avtoobmen\\complexall.txt

ncftpput -E -Z -v -u $NAMEFTP -p $PASSWORDFTP $FTPSERVER $REMOTECATALOG $FILENAMEISH

rm $LOCKFILE


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


вроде все, может поможет
Спасибо сказали:
shtorm007
Сообщения: 4

Re: Запуск Linux-команд из Wine

Сообщение shtorm007 »

arahorn писал(а):
17.12.2008 08:18
а вот скрипт который запускает автообмены 7-й 1С-ки под вайном, естественно он работает только в случае если "запущен сеанс", ну то есть так или иначе графическая часть 7-й 1С-ки должна быть убеждена что на нее кто то может смотреть

Интересный способ решения... Надо попробовать. О результатах отпишусь.
Спасибо сказали: