Pregunta

¿Cómo se envía una señal de POSIX desde dentro de la JVM? (En Java o Clojure)

Nunca pensé que esto sería un problema hasta que probé googling - hay un montón de información acerca de manipulación señales, pero nada acerca de enviarlos

.

A falta de uso de la JNI o ??llamando a la shell para ejecutar "matar", ¿hay alguna otra manera de enviar una señal a un proceso?

¿Fue útil?

Solución

Ok. Respondiendo a mí mismo: Miré las bibliotecas sugeridas, pero me gusta la idea de introducir nuevas dependencias en las porciones de código, sobre todo si sólo voy a utilizar una pequeña parte de ella

.

Resulta que la forma más fácil es usar JNA y la interfaz con el sistema API (libc). En este clojure más o menos cantidades a:

(JNA-invoke Entero matar signo pid)

después de hacer una. (: Uso net.n01se.clojure-JNA) por supuesto

Dado que este programa no está destinado a funcionar en Windows nunca, estoy bien con esta solución que debería funcionar en todos los sistemas POSIX (MacOS y Linux son lo que me interesa).

Otros consejos

señales POSIX es funciones específicas del sistema operativo, pero JVM se trató de ser independiente del sistema operativo VM. Así que no hay funciones estándar para esto.

Sin embargo, puede ejecutar comandos shell (usando Tiempo de ejecución clase) o utilizar algún lbrary para sus necesidades, como un java

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top