Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ под Linux

Войти
Регистрация
Восстановить пароль
 
KepDbIk
2 / 2 / 0
Регистрация: 28.03.2014
Сообщений: 16
#1

Скрипт для запуска программы - C++ Linux

27.12.2016, 02:34. Просмотров 629. Ответов 9
Метки нет (Все метки)

Всем привет! Не знаю, куда правильнее написать, поэтому пока сюда.
Написал программу в windows, но ее нужно запустить на линуксе (запуск удаленный, если что). Я в скриптах ничего не понимаю, поэтому мне дали два файла для запуска. Один из них:
Bash
1
2
3
4
5
6
7
8
#!/bin/sh
#PBS -l nodes=10:ppn=1
#PBS -e node-037:
#PBS -o node-037:
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:/usr/lib64/openmpi/lib/openmpi
 
hostname
/usr/lib64/openmpi/bin/mpiexec -mca btl openib,self -x LD_LIBRARY_PATH==/usr/lib64/openmpi/lib:/usr/lib64/openmpi/lib/openmpi -machinefile $PBS_NODEFILE $PBS_O_WORKDIR/rent_main_2
Да, программа выполнилась, но в ней (rent_main_2) было запрограммировано создание файла (.txt) с результатами работы, который, собственно, и не создается. (Этот скрипт создает логи выполнения программы (файл успешного выполнения и файл ошибок), поэтому сразу подумал на него). Возможно, дело и не в скрипте. Но если в нем, то напишите пожалуйста, как мне решить проблему создания этого файла. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2016, 02:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Скрипт для запуска программы (C++ Linux):

Скрипт авторизации на сайте (Для программы) - C++
Доброго времени суток! Есть ли такой скрипт (для программы) который будет заходить на заданный сайт? Т.е. юзер вводит логин и...

Параметр запуска программы - C++ Linux
Здравствуйте. Программа получает на вход поток данных через cat (cat file | prog). Но в программе argc == 1 -> argv == null. Что не так...

время запуска/конца выполнения программы с точностью до миллисекунд - C++
С. как сделать чтобы в начале программы выводилась дата и время с миллисекундами и тоже самое при её завершении?

Ошибка "Permission denied" при попытке запуска программы - C++ Linux
Не могу запустить свой "Hello world". Написал программу в текстовом файле, как положено. Hello.cpp Далее в терминале, запущенном из папки...

Таймер для запуска функций - C++
Ребята, подскажите, нужна функция или класс таймер, для запуска функции, но при этом, что бы не получилось замыкания на этом таймере. ...

Программа для предотвращения запуска определенных процессов во время работы приложения - C++
Доброго времени суток. Я мало знаком с программированием в целом, и мне нужна помощь, может какие конкретные инструкции. Если точнее, то...

9
RefSol
246 / 187 / 45
Регистрация: 31.10.2010
Сообщений: 589
27.12.2016, 03:11 #2
KepDbIk, а компилировали программу на C++ тоже в Windows?
вопрос снят
0
KepDbIk
2 / 2 / 0
Регистрация: 28.03.2014
Сообщений: 16
27.12.2016, 03:23  [ТС] #3
RefSol, я не написал - на удаленном компьютере есть компилятор для с и с++.
я просто закидываю туда мой *.срр или *.с и два файлика со скриптами (первый, как я понял, для запуска компиляции и выполнения, а второй для создания файлов ("успешности" и ошибок) после выполнения программы. его текст я представил выше)
0
RefSol
246 / 187 / 45
Регистрация: 31.10.2010
Сообщений: 589
27.12.2016, 03:55 #4
KepDbIk, тогда для понимания что Вам надо прикрепите листинг С++. Проще всего написать простую программу на С++, точно работающую как надо и на ней уже отлаживать скрипт.
0
Humanoid
Почетный модератор
9846 / 3743 / 168
Регистрация: 12.06.2008
Сообщений: 11,481
27.12.2016, 11:10 #5
Из какой директории запускаете скрипт? Может, он создаёт в текущей директории... например, в /home/<user> ?
0
KepDbIk
2 / 2 / 0
Регистрация: 28.03.2014
Сообщений: 16
27.12.2016, 11:43  [ТС] #6
Humanoid, да нет, я облазил все что можно и нигде не нашел. да и создаваться он должен, я думаю, как и в windows, в папке с исходным кодом (т.е. собственно туда, куда я и закидываю все мои файлы)
п.с. все скрипты и остальные файлы я закидываю в одну "рабочую" папку на том компьютере.

Добавлено через 4 минуты
RefSol, текст программы не из самых маленьких, поэтому для отладки механизма запуска я использую самую упрощенную версию, в которой в .txt записывается результат 2+2) да и от самого текста моей программы ничего не зависит, как мне объяснили.
0
RefSol
246 / 187 / 45
Регистрация: 31.10.2010
Сообщений: 589
27.12.2016, 11:49 #7
KepDbIk, программа может запускаться, но работать не корректно, или ни чего не выводить, поэтому проверять скрипт лучше на программе которая работает просто и выводит любые тестовые данные, хоть "2х2". Об этом Вам и писал ранее.
Есть ли у пользователя от имени которого запускается скрипт права на запись в данную директорию?
1
AlexVRud
444 / 155 / 40
Регистрация: 04.07.2014
Сообщений: 444
27.12.2016, 13:44 #8
KepDbIk, для начала вам прислали не просто скрипт запуска, а пример скрипта-задания для системы управления заданиями PBS Pro (или Torque).

Вычисления, вы собираетесь запускать на кластере.

Поэтому рекомендация: связаться с администраторами вашего вычислительного кластера и пройти у них мини курс по основам запуска MPI заданий на кластере.

В вашем случае:

Bash
1
#!/bin/sh
- большинство скриптов в Linux начинаются с такой строки-комментария в которой говорится какой программой он должен выполняться.
Поучите написание скриптов на bash: http://rus-linux.net/nlib.php?name=/...uide-02-2.html

Bash
1
2
3
#PBS -l nodes=10:ppn=1
#PBS -e node-037:
#PBS -o node-037:
Эти строки-комментарии предназначены для системы управления заданиями на кластере. Первая просит 10 узлов по одному процессору на каждом. Ни или по простому: вы просите выделить вам 10 ядер процессоров, на любых серверах (хоть на одном, хоть на нескольких).
Следующие две строки задают имена выходных файлов. Мой совет их убрать из скрипта.

Bash
1
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:/usr/lib64/openmpi/lib/openmpi
Таким образом вы говорите где лежат библиотечные файлы OpenMPI. Способ очень странный, обычно можно встреть более универсальный module load opnempi, но для этого должен быть настроен кластер. Уточните пример запуска заданий в справке по работе с кластером.

Bash
1
hostname
Просто выведет имя сервера на котором PBS/Torque запустил реально вашу задачу.

Bash
1
/usr/lib64/openmpi/bin/mpiexec -mca btl openib,self -x LD_LIBRARY_PATH==/usr/lib64/openmpi/lib:/usr/lib64/openmpi/lib/openmpi -machinefile $PBS_NODEFILE $PBS_O_WORKDIR/rent_main_2
В этой строке вам надо менять только rent_main_2 на имя вашей скомпилированной программы.

Хотя у меня опять претензия ко всей этой строке. Большинство параметров здесь должны были быть настроены администратором кластера.
На большинстве кластеров такой скрип сводится к

Bash
1
2
3
4
5
6
7
8
9
#!/bin/bash
#PBS -N mpi_hello
#PBS -l select=10
 
module load openmpi
 
cd $PBS_O_WORKDIR
 
mpiexec ./mpi_hello_program_name
1
KepDbIk
2 / 2 / 0
Регистрация: 28.03.2014
Сообщений: 16
27.12.2016, 19:15  [ТС] #9
RefSol, AlexVRud, большое спасибо за ответы! буду пробовать отлаживать мою программу.
AlexVRud, спасибо, что расписал, что все это значит (да, я уже читал про скрипты и пытался разобраться как они пишутся). Скрипт запускает другой, тестовый проект, который есть на кластере, поэтому полагаю, что он должен быть корректным. Если будут еще вопросы, а они наверняка появятся)) , то напишу сюда.
0
gavrasio
-16 / 14 / 0
Регистрация: 22.01.2013
Сообщений: 154
23.02.2017, 15:46 #10
А просто:

$ wine file.exe

или что-то подобное в Вашем дибустриве.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2017, 15:46
Привет! Вот еще темы с ответами:

Скрипт для Linux - C++ Linux
Доброго времени суток! Мне требуется помощь в написании скрипта,который может принимать несколько параметров (от 1 до 8) и для каждого из...

Скрипт для деления файла - C++ Linux
Приветствую друзья линуксоиды! Помогите пожалуйста советом или алгоритмом действий для решения следующей задачи: { Есть некий...

Какую библиотеку использовать для написания программы для моделирования - C++
Собственно в заголовке всё написано. Сразу скажу,что я пользовался поисковиком и нашёл казалось бы тему аналогичную почти с моей(да да...

Скрипт для запуска программы и автоматической идентификации пользователя - AutoIt
Всем добрый вечер. Поставили задачу такого плана (решить надо срочно, вот и обращаюсь) Есть программа, которая отвечает за охрану...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
23.02.2017, 15:46
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru