Если по правильному, то в зависимости от того какая у вас убунта, вам нужно писать либо юнит к systemd, либо к upstart.
Для upstart это будет выглядеть примерно так ( /etc/init/ipython-notebook.conf)
# Запуcкаем программу в tty2
#
# Дополнительно нужно убедиться, что на tty2 больше ничего не стартует
# (хорошей идеей будет прибить /etc/init/tty2.conf)
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /usr/bin/setsid sh -c 'exec notebook.sh <> /dev/tty2 >&0 2>&1'
Полезная ссылочка
unix.stackexchange.com/questions/170063/start-a-pr...