É assim que você pode definir um script como daemon:
#! /bin/sh
### BEGIN INIT INFO
# Provides: foobar
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: foobar
# Description: more foo for your bars
### END INIT INFO
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting foobar "
# example 1 - system service
# /usr/bin/foobar --config /etc/foo.conf start
# example 2 - run script as user
# su --login mkaz --command "/home/mkaz/bin/my-script --cmd-args"
;;
stop)
echo "Stopping foobar"
# example 1
# /usr/bin/foobar --config /etc/foo.conf stop
;;
*)
echo "Usage: /etc/init.d/foobar {start|stop}"
exit 1
;;
esac
exit 0
Em seguida, mova seu script para a pasta init.d & configurá-lo como executável
sudo mv foobar /etc/init.d/ # move to init.d
sudo chmod 755 /etc/init.d/foobar # make executable
Se você deseja iniciar seu script na inicialização:
update-rc.d foobar defaults
Se você quiser remover seu script da inicialização:
update-rc.d -f foobar remove
Se você deseja iniciar seu script manualmente:
service foobar start
Fonte: link