Название: [решено] GUI и сеанс MS DOS или терминал Линух Отправлено: Примерный ученик от Октября 14, 2018, 14:59 Есть ли возможность запустить из GUI окно командной строки, передать туда скрипт на выполнение, поуправлять им, а потом закрыть?
Название: Re: GUI и сеанс MS DOS или терминал Линух Отправлено: PimenS от Октября 14, 2018, 22:53 QProcess не подходит?
Название: Re: GUI и сеанс MS DOS или терминал Линух Отправлено: Примерный ученик от Октября 15, 2018, 09:50 Код: connect( proc, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(okSave()) ); Тут только мои сообщения, от процесса ничего, хотя он должен спросить пароль postgres Есть только сигнал finished Код: 09:46:06 Запуск процесса архивирования БД Название: Re: GUI и сеанс MS DOS или терминал Линух Отправлено: qate от Октября 15, 2018, 11:41 Если под linux, то я делал так:
QProcess::startDetached("gnome-terminal", QStringList() << "-e" << QString("%1/%2 %3").arg(QApplication::applicationDirPath(), "my_script.sh", my_param)); Под венду наверно нужно вызвать cmd.exe, но я не разбирался как конкретно. Название: Re: GUI и сеанс MS DOS или терминал Линух Отправлено: Примерный ученик от Октября 15, 2018, 12:25 Спасибо. С QProcess::startDetached окно появилось ;D
и под виндой Название: Re: GUI и сеанс MS DOS или терминал Линух Отправлено: GraninDm от Октября 18, 2018, 18:01 Насколько я помню postgres пароль забирает не из stdin.
Это для безопасности сделано. Если нужна автоматом подставить пароль то его лучше прописать в скрипт SET PGPASSWORD = 123456789 PGPASSWORD behaves the same as the password connection parameter. Use of this environment variable is not recommended for security reasons, as some operating systems allow non-root users to see process environment variables via ps; instead consider using the ~/.pgpass file (see Section 31.14). PGPASSFILE specifies the name of the password file to use for lookups. If not set, it defaults to ~/.pgpass (see Section 31.14). Название: Re: GUI и сеанс MS DOS или терминал Линух Отправлено: Примерный ученик от Октября 21, 2018, 21:44 Такое решение не подходит из соображений безопасности.
Сейчас процесс запрашивает пароль и работает дальше. Появилась другая проблема: если нет ошибок, то все отрабатывает и процесс завершается, архив создается. Но при ошибках, процесс то же завершается без всяких сообщений и создания архива. Есть ли возможность заставить процесс ждать его принудительного завершения? Название: Re: GUI и сеанс MS DOS или терминал Линух Отправлено: Примерный ученик от Октября 22, 2018, 10:40 Код: proc->startDetached("cmd /K "+appPath+"/db.cmd"); |