Вместо использования crontab вы должны создать простую службу, которая зависит от сети:
#!/bin/bash
# /etc/init.d/XY
### BEGIN INIT INFO
# Provides: XY
# Required-Start: $syslog $network
# Required-Stop: $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Example initscript
# Description: This service is used to start XY
### END INIT INFO
case "$1" in
start)
echo "Updating XY"
cd /home/pi/code
/usr/bin/sudo -u pi -H /usr/bin/git pull origin master
echo "Starting server.js"
/usr/bin/sudo -u pi -H /home/pi/.nvm/v0.11.11/bin/forever start /home/pi/code/server.js
;;
stop)
echo "Stopping XY"
;;
*)
echo "Usage: /etc/init.d/XY start|stop"
exit 1
;;
esac
exit 0
Поместите ее в папку службы и сделайте ее исполняемой:
sudo chmod +x /etc/init.d/XY