Название: [РЕШЕНО] QProcess Linux run .sh скрипт Отправлено: virtual_root от Август 23, 2012, 17:09 Добрый день ребята! Подскажите пожалуйста, как мне под Linux(kUbuntu) выполнить скрипт .sh программно?
Я написала такую функцию: Код Консоль она запускает, но скрипт почему-то не исполняется и даже никаких попыток исполнения я не вижу, соответственн и результат от выполненого скрипта(должен появиться файл) нету... Запускала скрипт просто в консоли, он прекрасно отрабатывает без ошибок. Может надо какой-то путь особый добавить? Ведь скрипт находится у меня в папке SSL рядом с исполняемым файлом. Подскажите пожалуйста! Название: Re: QProcess выполнить скрипт Отправлено: kambala от Август 23, 2012, 17:15 папка SSL находится возле исполняемого файла?
Название: Re: QProcess выполнить скрипт Отправлено: virtual_root от Август 23, 2012, 17:20 да. Я подправила так:
Код: QString script = QApplication::applicationDirPath()+QDir::separator()+"SSL/CreateGrabberKey.sh"; Название: Re: QProcess выполнить скрипт Отправлено: virtual_root от Август 23, 2012, 17:39 изменила немного код, но всё равно скрипт не выполняется...
Как мне хоть какой-то вывод получить? А то консоль совсем пустая запускается... Код
Название: Re: QProcess выполнить скрипт Отправлено: maint от Август 23, 2012, 18:00 вопрос один. А файлик исполнимый ? Для линуха, в отличии от винды расширение пофигу. Надо посмотреть в любом из файл-менеджеров есть у него атрибут "исполнимый" или "исполнить". Если нет, то или в менеджере, его средствами или с командной строки набрать chmod +x имя_файла
Название: Re: QProcess выполнить скрипт Отправлено: Aluman от Август 24, 2012, 08:22 Я c linux не очень хорошо знаю, но насколько мне известно скрипты в linux выполняет bash. Именно ему и нужно передавать скрипт на выполнение. Скорей всего как-то так /bin/bash bash [опции] [файл], где [опции] - необходимый ключи (ключи можно посмотреть тут http://opennet.ru/man.shtml?topic=bash&category=1), а [файл] - путь к скрипту.
Название: Re: QProcess выполнить скрипт Отправлено: virtual_root от Август 24, 2012, 10:40 подправила права на файлы и с bash пробовала всё равно не выходит...
что интересно запускаю процесс с такой строкой: Код: "konsole cd /home/urivskay/QtProjects/RunScriptLinux/SSL/; ./CreateGrabberKey.sh 30 Viewer_2" Код: Ошибка сегментирования (core dumped) В чем же у меня причина? Почему не хочет через процесс выполнять скрипт? Привана папку SSL и файлы 777 Название: Re: QProcess выполнить скрипт Отправлено: virtual_root от Август 24, 2012, 12:05 Разобралась. В Linux файлы .sh являются исполняемыми и поэтому вовсе не нужно в качестве программы процессу передавать консоль.
Сделала так и всё работает! Код
Название: Re: [РЕШЕНО] QProcess Linux run .sh скрипт Отправлено: kambala от Август 24, 2012, 14:18 Код а я и не заметил сначала этого в первом посте… Название: Re: QProcess выполнить скрипт Отправлено: Alex Custov от Август 24, 2012, 14:48 Разобралась. В Linux файлы .sh являются исполняемыми не являются, "исполнимость" - это атрибут файла, который можно поставить или убрать. Название: Re: [РЕШЕНО] QProcess Linux run .sh скрипт Отправлено: virtual_root от Август 24, 2012, 15:03 а как это сделать, подскажите?)
Название: Re: [РЕШЕНО] QProcess Linux run .sh скрипт Отправлено: Serr500 от Август 24, 2012, 15:07 QFile::setPermissions и параметры QFile::ExeOwner, QFile::ExeUser, QFile::ExeGroup, QFile::ExeOther.
Название: Re: [РЕШЕНО] QProcess Linux run .sh скрипт Отправлено: virtual_root от Август 25, 2012, 11:29 спасибо
|