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

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

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

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

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

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

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

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

Похожие вопросы