Звучит немного хитро, поскольку JNI должен быть только односторонним: код Java может вызывать собственный метод, который, конечно, может вызывать обратно в код Java, но не может сам инициировать процесс.
Но это не невозможно, я думаю, что самое простое решение состоит в том, чтобы иметь собственный вызов, который блокирует до получения сигнала.
Другой вариант - написать агент JVMTI, который может мешать работеактивно работающая ВМ.
Но если мы говорим о сигналах UNIX, то вы можете работать с непубличным API (поэтому не гарантируется в будущем и не зависит от Sun VM), но с существующим sun.misc.Signal
класс.