Мой Scala скрипт создает подпроцессы так:Scala: Как предотвратить подпроцессы получать CTRL + C/Ctrl + C/SIGINT
val exitValue = Process(Seq("bash", "-c", command), dir) ! processLogger
с командой быть, например, "mvn clean package"
или для тестирования этого номера "sleep 20"
.
По какой-то причине мой скрипт должен перехватывать SIGINT, потому что пользователь мог означать «копировать» вместо «остановить его» (на самом деле это происходит время от времени). Я достиг этого путем добавления обработчика сигнала, как это:
Signal.handle(new Signal("INT"), this)
override def handle(sig: Signal)
{
log.warn("Ignoring SIGINT (Ctrl+C). Press [Esc] instead.")
}
Однако когда подпроцесс работает это не работает, потому что CTRL + C делает его остановить. Что я могу сделать, чтобы подпроцесс игнорировал SIGINT? Я нашел решение для Python: Python: How to prevent subprocesses from receiving CTRL-C/Control-C/SIGINT Есть ли что-то подобное для Scala?
Спасибо большое! Я даже думал о вызове 'python' для достижения этого – mbee