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