Wine приложение в cron

Вопросы настройки, запуск любых Windows-программ, кроме игр

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

ldb
Сообщения: 53
ОС: Open SUSE 10.3

Wine приложение в cron

Сообщение ldb »

Написал скрипт запуска 1C под wine, руками запускается без проблем, cron запустить не может, пишет
Application tried to create a window, but no driver could be loaded.Пытался и $DISPLAY в скрипте прописывать и Иксы запускать не помогает.
В чем проблема?
Спасибо сказали:
loki4
Сообщения: 115
ОС: GNU/Linux Arch Linux

Re: Wine приложение в cron

Сообщение loki4 »

А иксы сами то запущены? Странно, у меня аналогичный скрипт, но он работает вроде. Попробуйте так прописать:

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

DISPLAY=:2 wine server.exe


ну или какой у Вас дисплей по умолчанию. Я запускаю vncserver поэтому у меня :2, а по умолчанию кажется :0
До крона еше не добрался, но вечерком подумаю над этим ибо тоже надо.
Спасибо сказали:
ldb
Сообщения: 53
ОС: Open SUSE 10.3

Re: Wine приложение в cron

Сообщение ldb »

loki4 писал(а):
21.05.2008 09:04
А иксы сами то запущены? Странно, у меня аналогичный скрипт, но он работает вроде. Попробуйте так прописать:

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

DISPLAY=:2 wine server.exe


ну или какой у Вас дисплей по умолчанию. Я запускаю vncserver поэтому у меня :2, а по умолчанию кажется :0
До крона еше не добрался, но вечерком подумаю над этим ибо тоже надо.

Спасибо, прописал в скрипте

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

DISPLAY=:0 wine 'c:\Program Files\1cv81\bin\1cv8.exe' CONFIG \/S 192.168.0.NNN\\имя базы /N"имя юзера" /P"пароль" \/DumpIB$TFILE

Заработало, правда почему-то грузится с англоязычным интерфейсом и вместо русского кракозябры, пока разбираться не стал, создал пользователя с английским именем дал ему права на сохранение и убрал из списка запуска.
Спасибо сказали:
loki4
Сообщения: 115
ОС: GNU/Linux Arch Linux

Re: Wine приложение в cron

Сообщение loki4 »

Посмотрите вывод

от польхователя и во время выполнения скрипта, возможно все дело в переменных окружения.

upd:
да, все дело как раз в этом. Проверил, оказывается запускается с неправильной локалью (POSIX, когда нужен то UTF-8 и от этого весь русский нечитаемый).
Решил довольно просто: в скрипт, который у меня запускает vncserver и виндовую прогу, добавил:

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

#!/bin/bash
export LANG="ru_RU.UTF-8"
...


Думаю, Вам это тоже должно помочь.
Спасибо сказали:
Аватара пользователя
makus
Сообщения: 48
ОС: Linux

Re: Wine приложение в cron

Сообщение makus »

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

У меня аналогичная проблема: руками скрипт запускается, через планировщик - не хочет. На данный момент скрипт выглядит так:

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

#!/bin/bash

cd /home/winedirs/wine_d/1C/1C-Bases/Traktir/Traktir/CP/
./download.sh

DISPLAY=:0.0 wine "C:\Program Files\1Cv77\BIN\1Cv7s.exe" CONFIG /D"D:\\1C\1C-Bases\Traktir\Traktir" /Nuser /Ppassword /@"D:\\1C\1C-Bases\Traktir\Traktir\a$

cd /home/winedirs/wine_d/1C/1C-Bases/Traktir/Traktir/PC/
./upload.sh


На почту пользователя приходит сообщение:

Warning: there are some errors in winediag output. Run winediag command and check it.
/usr/bin/wine: Running without console, disable input
/home/winedirs/wine_d/1C/1C-Bases/Traktir/Traktir/PC/21.zip: no files found


Более раннее сообщение при запуске того же скрипта (ничего не менял):

Warning: there are some errors in winediag output. Run winediag command and check it.
/usr/bin/wine: Running without console, disable input
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.
/home/winedirs/wine_d/1C/1C-Bases/Traktir/Traktir/PC/21.zip: no files found


Т.е., обмен не проходит. Запуск winediag под этим пользователем проходит без ошибок.

Что еще нужно сделать?
Спасибо.
С уважением.
Спасибо сказали:
Аватара пользователя
makus
Сообщения: 48
ОС: Linux

Re: Wine приложение в cron

Сообщение makus »

Нашел вот это обсуждение: 1С в cron
Установил Xvfb и прописал в скрипте перед DISPLAY:

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

Xvfb -shmem -screen 0 800x640x16


Обмен не работает. Сообщение:

Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.

shmdt: Invalid argument
shmdt failed, errno 22shmdt: Invalid argument
shmdt failed, errno 22shmdt: Invalid argument
shmdt failed, errno 22Warning: there are some errors in winediag output. Run winediag command and check it.
/usr/bin/wine: Running without console, disable input
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.
/home/winedirs/wine_d/1C/1C-Bases/Traktir/Traktir/PC/21.zip: no files found
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.


При выборе другого значения DISPLAY сообщение об ошибке не меняется. На 0-м дисплее запущены X-ы: запускаются автоматически, при старте системы. Как я понимаю, нужно создать отдельный дисплей для Xvfb, только не знаю как это сделать :[
С уважением.
Спасибо сказали:
Аватара пользователя
Ellion
Сообщения: 70
ОС: OpenSuSe11.1

Re: Wine приложение в cron

Сообщение Ellion »

Может поможет:
1. На сервере с иксами (не удаленно, а локально) делаем "xhost +".
2. Перед запуском программы - "export DISPLAY=:0.0".
Спасибо сказали:
Аватара пользователя
makus
Сообщения: 48
ОС: Linux

Re: Wine приложение в cron

Сообщение makus »

Ellion писал(а):
21.08.2009 08:28
Может поможет:
1. На сервере с иксами (не удаленно, а локально) делаем "xhost +".


Т.е., каждый раз после перезагрузки сервера нужно это делать или достаточно один раз дать команду?

Ellion писал(а):
21.08.2009 08:28
2. Перед запуском программы - "export DISPLAY=:0.0".


На дисплее 0.0 автоматически запускаются X при старте системы. Это не будет мешать?
И, как я понимаю, Xvfb при этом не нужно использовать?

Обязательно попробую, спасибо.
С уважением.
Спасибо сказали:
Аватара пользователя
Ellion
Сообщения: 70
ОС: OpenSuSe11.1

Re: Wine приложение в cron

Сообщение Ellion »

Т.е., каждый раз после перезагрузки сервера нужно это делать или достаточно один раз дать команду?
Я себе прописал в ~/.bashrc, хоть и говорят, что это несекурно.
На дисплее 0.0 автоматически запускаются X при старте системы. Это не будет мешать?
Не думаю.
И, как я понимаю, Xvfb при этом не нужно использовать?
Тут я вообще не знаю, т.к. у меня х11.
Спасибо сказали:
Аватара пользователя
makus
Сообщения: 48
ОС: Linux

Re: Wine приложение в cron

Сообщение makus »

Ellion писал(а):
21.08.2009 14:13
Я себе прописал в ~/.bashrc, хоть и говорят, что это несекурно.


В ~/.bashrc пользователя, от имени которого запускается скрипт?
Т.е., пользователь сам себе разрешает запуск X? :)
С уважением.
Спасибо сказали:
Аватара пользователя
makus
Сообщения: 48
ОС: Linux

Re: Wine приложение в cron

Сообщение makus »

Прописал в ~/.bashrc - ничего не изменилось :(
Буду искать причину, а пока попробую запустить сеанс пользователя в отдельной консоли - и установить в Wine какой-нибудь планировщик, который будет запускать батники, как было сделано раньше, в Windows.
С уважением.
Спасибо сказали:
Аватара пользователя
Ellion
Сообщения: 70
ОС: OpenSuSe11.1

Re: Wine приложение в cron

Сообщение Ellion »

В ~/.bashrc пользователя, от имени которого запускается скрипт?
Эм... нет, у меня-то на гейте постоянно активен другой пользователь, он и сидит под иксами, которые мне иногда нужны. В вашем случае надо не в ~/.bashrc прописывать, а в автозагрузку(after.local, например).
Спасибо сказали: