No Ubunutu 12.04 e no Centos 5 + 6 é possível usar o nome do sinal como SIGTERM, mas no 12.10 é necessário usar o -TERM. Alterar meu código para que os nomes dos sinais não tenham o prefixo 'SIG' parece funcionar bem em 12.04 e 12.10. Então, o código de exemplo que funciona para mim é:
Process proc = Runtime.getRuntime().exec("kill -TERM -" + args[0]);
Para esclarecer, kill -SIGTERM -<PID>
funciona no shell Bash no Ubuntu 12.10, mas não se for executado através de Runtime.getRuntime.exec()
, um deve remover a parte 'SIG' conforme descrito acima.