@Qreen
Разъяренный питонист

Как запустить shell-команду в другом процессе (Java)?

Мне нужно запустить команду для баш, условно, ls

Я бы мог использовать
Runtime rt = Runtime.getRuntime();
String proc = "ls";
Process pr = rt.exec(proc);
Или что то вроде этого, но, как я вычитал в интернете -
Вызов метода Runtime.exec() — это простой, еще не настраиваемый способ создания нового подпроцесса.
, а мне это не нужно. Не уверен, что нужна причина, почему я хочу создать именно новый процесс, но все же - вот она:
бесполезная информация ниже
Мой исполняемый файл при запуске ограничивают в ресурсах, моя задача - попробовать снять это ограничение. Я даю на запуск один файл, который должен будет запустить второй через вызов shell-команды, но уже с другими параметрами. Он делает это, все отображается корректно, но, по какой то причине, второй файл отказывается использовать ресурсы, данные ему. Насколько я понял, это из за того, что он является подпроцессом.

( Я ничего не понимаю в джаве, это, можно сказать, мой helloworld, потому что выбора особо не было.)
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Мой исполняемый файл при запуске ограничивают в ресурсах, моя задача - попробовать снять это ограничение.

В линукс нельзя просто так взять и ограничить один процесс без ничего.
Ограничивают обычно через cname, а это означает, что процесс запускается внутри своей подгруппы, и видит только те ресурсы, которые ему выделились. Если этот процесс запустит другой подпроцесс, они будут внутри той же самой группы (грубо говоря в контейнере).

Вообще было бы хорошо уточнить смысл задачи. Это задача поставленная преподавателем, поставленная самому себе, или рабочий процесс? И кратко описать из-за чего такие требования.
Может для другого процесса проще написать какой-то API и триггерить его запуск уже из вашего Java приложения. Таким образом другой процесс не будет дочерним.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы