Caleb estava certo sobre passar a variável de exibição correta. Eu também usei crontab -e em vez de SUDOing. No Ubuntu, tudo o que você precisa fazer é especificar qual display deve passar no Crontab. Então meu comando é assim:
00 18 * * * env DISPLAY=:0 gnome-session-save --kill
o env DISPLAY =: 0 é o que diz para passar o cronjob para a exibição atual (desktop). Como alternativa, se você tiver várias exibições, poderá especificar qual exibição será transmitida usando um decimal (0.0 = display 1, 0.1 = display 2 etc.)
Sim, usei o cache da web do Google porque a página não estava sendo carregada corretamente para mim = D.