Preferred way to run Scrapyd in the background / as a service
To have scrapyd run as daemon, you can simply do:
$ scrapyd &
The & at the end makes scrapyd run as daemon.
Or, you can run the following command to load the service on the scrapy folder:
$ daemon --chdir=/home/ubuntu/crawler scrapyd
As you have mentioned, to use "daemon", you need to first install daemon on your ubuntu by
$ sudo apt-get install daemon
After having scrapyd run as daemon by doing one of the above ways, you should be able to access your scrapyd web interface after closing your ssh connection.
Set ScrapyD as a System Service
sudo nano /lib/systemd/system/scrapyd.service
Then copy-paste following
[Unit]
Description=Scrapyd service
After=network.target
[Service]
User=<YOUR-USER>
Group=<USER-GROUP>
WorkingDirectory=/any/directory/here
ExecStart=/usr/local/bin/scrapyd
[Install]
WantedBy=multi-user.target
Then enable service
systemctl enable scrapyd.service
Then start service
systemctl start scrapyd.service
Another method but not recommended
Use this command.
cd /path/to/your/project/folder && nohup scrapyd >& /dev/null &
Now you can close your SSH connection but scrapyd will keep running.
And to make sure that whenever your server restarts and scrapyd runs automatically. Do this
copy the output of echo $PATH
from your terminal, and then open your crontab by crontab -e
Now at the very top of that file, write this
PATH=YOUR_COPIED_CONTENT
And now at the end of your crontab, write this.
@reboot cd /path/to/your/project/folder && nohup scrapyd >& /dev/null &
This means, each time your server is restarted, above command will automatically run