Normalmente, você pode usar SIGHUP para fechar uma aplicação "amigável" (com ou sem interface gráfica).
kill -HUP <application_pid>
EDITED : adicionou outras informações
A forma como o SIGHUP é tratado é dependente da aplicação, por isso, como Dave observou, pode acontecer que este sinal seja mascarado ou manuseado. No entanto, todos os aplicativos interativos saem normalmente com um SIGHUP.
Por outro lado, tenho que admitir que normalmente eu sigo este esquema:
kill -HUP <application_pid>
# check if application is still running
kill -INT <application_pid>
# check if application is still running
kill -KILL <application_pid>
Obviamente, o último comando não é tão "amigável".