Отправка POSIX сигнализирует от JVM

Как я отправляю сигнал POSIX из JVM? (в Java или Clojure)

Я никогда не думал, что это будет проблемой, пока я не пытался гуглить ее — существует большая информация об обработке сигналов, но ничего об отправке их.

За исключением использования JNI или вызова оболочки для выполнения "уничтожают", там какой-либо другой способ отправить сигнал в PID?

16
задан Jan Rychter 30 June 2010 в 09:02
поделиться

2 ответа

Хорошо. Отвечая себе: я просмотрел предложенные библиотеки, но опасаюсь вводить новые зависимости для большого количества кода, особенно если я буду использовать только небольшую его часть.

Оказывается, самый простой способ - использовать JNA и взаимодействовать с системным (libc) API. В clojure это в значительной степени сводится к:

(jna-invoke Integer kill pid signo)

, конечно, после выполнения (: use net.n01se.clojure-jna).

Поскольку это программное обеспечение не предназначено для работы в Windows, меня устраивает это решение, которое должно работать во всех системах POSIX (меня интересуют MacOS и Linux).

9
ответ дан 30 November 2019 в 22:55
поделиться

Сигналы POSIX - это функции, специфичные для ОС, но JVM пытается быть виртуальной машиной, независимой от ОС. Так что стандартных функций для этого нет.

Но вы можете выполнять команды оболочки (используя класс Runtime ) или использовать библиотеку для ваших нужд, например Posix для Java

5
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

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