Вероятно, ответ вашей проблемы находится в файле справки команды makeCluster()
.
В нижней части файла написано: Хорошей практикой является отключение рабочих с помощью вызова stopCluster: однако рабочие завершают работу, как только сокет, на котором они слушают команды, становится недоступным, что это должно произойти, если сеанс master R завершен (или его процесс завершен).
Решение (это работает для меня), чтобы определить порт для вашего кластера, пока вы его создаете.
cl <- makeCluster(2, type = cltype,port=yourPortNumber)
Другое (может быть, бесполезное) решение - установить тайм-аут для ваших сокетов. Переменная времени ожидания указана в секундах.
cl <- makeCluster(2, type = cltype,port=yourPortNumber,timeout=50)
В любом случае, цель должна заключаться в том, чтобы сделать подключение к сокету недоступным. Это может сделать либо закрытие портов, либо закрытие основного процесса R.
Редактировать: Я имел в виду закрытие портов, которые слушает процесс. Он должен быть независимым от ОС. Вы можете попробовать использовать -> showConnections(all = TRUE);
. Это даст все связи. Тогда вы можете попробовать closeAllConnections();
Извините, если это не сработает.