sh -c "java -jar ol.jar"
Зачем такая команда, если можно сразу
java -jar ol.jar?
Я посылаю сигналы на PID sh процесса, и только 9 сигнал срабатывает (логично, он же его убивает), остальные сигналы sh съедает сам и не посылает дочернему процессу.
sh ничего не съедает и передавать автоматом в дочерние процессы он может только sighup, который он не передаст поскольку у вас интерактивная сессия, и сигнал 9 до процесса не доходит - процесс прибивается ядром.
Собственно пока не будет понятно, зачем вы запускаете sh из которого запускаете jar, не очень понятно что происходит.
Возможно, вам нужно это делать вот так:
java -jar ol.jar &
echo $! > ol.pid
и следовательно получать pid джава процесса в файле, в дальнейшем с ним работать.