O que você está procurando é um script de inicialização: dê uma olhada no Upstart How .
Você basicamente precisa colocar seu script em /etc/init.d e criar um link em /etc/rc?.d , onde "?" é o nível de execução que você deseja executar.
O nome do link determina a ordem e quando (iniciar ou desligar) é executado.
Os links que começam com K são executados no encerramento, começando com S na inicialização. Você deve colocar os scripts de desligamento em /etc/rc0.d/ e os scripts de inicialização em /etc/rc2.d/ . Os scripts de reinicialização devem ser colocados em /etc/rc6.d .
Você também pode executar um script quando o X terminar ou o gnome desconectar você, mas acho que os scripts de init são as soluções mais limpas.
Se for com a primeira opção, sistemas Debian como o Ubuntu fornecem a ferramenta de linha de comando update-rc.d para ajudar na instalação de /etc/rc?.d scripts.