![отправка заданий на рабочую станцию Linux](https://rvso.com/image/1346157/%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9%20%D0%BD%D0%B0%20%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D1%83%D1%8E%20%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D1%8E%20%E2%80%8B%E2%80%8BLinux.png)
У меня есть доступ к нескольким рабочим станциям Linux, на которых я запускаю исполняемые файлы C++ со своего ноутбука, но проблема в том, что каждый раз, когда я запускаю задание с терминала на своем ноутбуке, мне приходится открывать окно терминала для каждого задания... Мне нужен способ отправить задание на машину Linux и увидеть результат только после завершения выполнения... Я знаю, что это можно сделать в исполняемом файле FORTRAN, добавив & только в конец, и я пробовал это с помощью: mpirun -np 20 ./a 200 1000000& и mpirun -np 20 ./a 200 1000000 &, но ни один из них не работает...
Можно ли сделать то же самое в Linux с помощью C++?
решение1
Попробуйте добавить nohup
в начало команды. Это защитит процесс от SIGHUP
сигнала (который может указывать на то, что владеющий терминал был закрыт), действие по умолчанию для которого — завершить процесс. Например:
nohup mpirun -np 20 ./a 200 1000000 &
решение2
Посмотрите на screen
команду.
man 1 screen