Написал скрипт запуска 1C под wine, руками запускается без проблем, cron запустить не может, пишет
Application tried to create a window, but no driver could be loaded.Пытался и $DISPLAY в скрипте прописывать и Иксы запускать не помогает.
В чем проблема?
Wine приложение в cron
Модератор: Модераторы разделов
-
- Сообщения: 115
- ОС: GNU/Linux Arch Linux
Re: Wine приложение в cron
А иксы сами то запущены? Странно, у меня аналогичный скрипт, но он работает вроде. Попробуйте так прописать:
ну или какой у Вас дисплей по умолчанию. Я запускаю vncserver поэтому у меня :2, а по умолчанию кажется :0
До крона еше не добрался, но вечерком подумаю над этим ибо тоже надо.
Код: Выделить всё
DISPLAY=:2 wine server.exe
ну или какой у Вас дисплей по умолчанию. Я запускаю vncserver поэтому у меня :2, а по умолчанию кажется :0
До крона еше не добрался, но вечерком подумаю над этим ибо тоже надо.
-
- Сообщения: 53
- ОС: Open SUSE 10.3
Re: Wine приложение в cron
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
Заработало, правда почему-то грузится с англоязычным интерфейсом и вместо русского кракозябры, пока разбираться не стал, создал пользователя с английским именем дал ему права на сохранение и убрал из списка запуска.
-
- Сообщения: 115
- ОС: GNU/Linux Arch Linux
Re: Wine приложение в cron
Посмотрите вывод
от польхователя и во время выполнения скрипта, возможно все дело в переменных окружения.
upd:
да, все дело как раз в этом. Проверил, оказывается запускается с неправильной локалью (POSIX, когда нужен то UTF-8 и от этого весь русский нечитаемый).
Решил довольно просто: в скрипт, который у меня запускает vncserver и виндовую прогу, добавил:
Думаю, Вам это тоже должно помочь.
Код: Выделить всё
export
от польхователя и во время выполнения скрипта, возможно все дело в переменных окружения.
upd:
да, все дело как раз в этом. Проверил, оказывается запускается с неправильной локалью (POSIX, когда нужен то UTF-8 и от этого весь русский нечитаемый).
Решил довольно просто: в скрипт, который у меня запускает vncserver и виндовую прогу, добавил:
Код: Выделить всё
#!/bin/bash
export LANG="ru_RU.UTF-8"
...
Думаю, Вам это тоже должно помочь.
-
- Сообщения: 48
- ОС: Linux
Re: Wine приложение в cron
Добрый день.
Нашел тему через поисковик.
У меня аналогичная проблема: руками скрипт запускается, через планировщик - не хочет. На данный момент скрипт выглядит так:
На почту пользователя приходит сообщение:
Более раннее сообщение при запуске того же скрипта (ничего не менял):
Т.е., обмен не проходит. Запуск winediag под этим пользователем проходит без ошибок.
Что еще нужно сделать?
Спасибо.
Нашел тему через поисковик.
У меня аналогичная проблема: руками скрипт запускается, через планировщик - не хочет. На данный момент скрипт выглядит так:
Код: Выделить всё
#!/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 под этим пользователем проходит без ошибок.
Что еще нужно сделать?
Спасибо.
С уважением.
-
- Сообщения: 48
- ОС: Linux
Re: Wine приложение в cron
Нашел вот это обсуждение: 1С в cron
Установил Xvfb и прописал в скрипте перед DISPLAY:
Обмен не работает. Сообщение:
При выборе другого значения DISPLAY сообщение об ошибке не меняется. На 0-м дисплее запущены X-ы: запускаются автоматически, при старте системы. Как я понимаю, нужно создать отдельный дисплей для Xvfb, только не знаю как это сделать :[
Установил 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, только не знаю как это сделать :[
С уважением.
-
- Сообщения: 70
- ОС: OpenSuSe11.1
Re: Wine приложение в cron
Может поможет:
1. На сервере с иксами (не удаленно, а локально) делаем "xhost +".
2. Перед запуском программы - "export DISPLAY=:0.0".
1. На сервере с иксами (не удаленно, а локально) делаем "xhost +".
2. Перед запуском программы - "export DISPLAY=:0.0".
Спасибо сказали:
-
- Сообщения: 48
- ОС: Linux
Re: Wine приложение в cron
Т.е., каждый раз после перезагрузки сервера нужно это делать или достаточно один раз дать команду?
На дисплее 0.0 автоматически запускаются X при старте системы. Это не будет мешать?
И, как я понимаю, Xvfb при этом не нужно использовать?
Обязательно попробую, спасибо.
С уважением.
-
- Сообщения: 70
- ОС: OpenSuSe11.1
Re: Wine приложение в cron
Я себе прописал в ~/.bashrc, хоть и говорят, что это несекурно.Т.е., каждый раз после перезагрузки сервера нужно это делать или достаточно один раз дать команду?
Не думаю.На дисплее 0.0 автоматически запускаются X при старте системы. Это не будет мешать?
Тут я вообще не знаю, т.к. у меня х11.И, как я понимаю, Xvfb при этом не нужно использовать?
-
- Сообщения: 48
- ОС: Linux
Re: Wine приложение в cron
В ~/.bashrc пользователя, от имени которого запускается скрипт?
Т.е., пользователь сам себе разрешает запуск X?

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

Буду искать причину, а пока попробую запустить сеанс пользователя в отдельной консоли - и установить в Wine какой-нибудь планировщик, который будет запускать батники, как было сделано раньше, в Windows.
С уважением.
-
- Сообщения: 70
- ОС: OpenSuSe11.1
Re: Wine приложение в cron
Эм... нет, у меня-то на гейте постоянно активен другой пользователь, он и сидит под иксами, которые мне иногда нужны. В вашем случае надо не в ~/.bashrc прописывать, а в автозагрузку(after.local, например).В ~/.bashrc пользователя, от имени которого запускается скрипт?