Я слышал, что в java 9 они много работали, обновляя Process API. Есть ли теперь более чистый способ отправить сигнал на Process
, порожденный Java? Сигналы используются как простой способ инициировать действия в процессе.Отправка сигнала процессу из Java 9
Прежде чем я должен был использовать отражение, чтобы получить pid
, а затем воспользуйтесь Runtime#exec
, чтобы отправить команду kill
. Я предполагаю, что вам все еще нужно использовать Runtime#exec
, потому что сигнал может быть зависимым от ОС, но мне любопытно, знает ли кто-нибудь лучший способ, чем это!
Process p = Runtime.getRuntime().exec(...);
...
Runtime.getRuntime().exec("kill -SIGUSR1 " + p.getPid());
Вы можете посмотреть документ: http://download.java.net/java/jdk9/docs/api/java/lang/Process.html Единственные очевидные вещи, которые я вижу, - это 'destroy' и' destroyForcibly' , но те были там уже в Java 8. –
@JornVernee yup, где я увидел «getPid». Просто интересно, пропустил ли я что-нибудь! – flakes
Возможный дубликат [Как отправить сигнал SIGINT с Java на внешний процесс?] (Http://stackoverflow.com/questions/7835212/how-to-send-sigint-signal-from-java-to-an-external -process) – Whymarrh