Solution 1:

It does not really matter what OS you're on (as long it is not Windows :D).

To start the processing the command is:

bundle exec rake jobs:work

to restart the delayed_job the command is:

RAILS_ENV=production script/delayed_job restart

Check out gems README for more info.

EDIT

(according to the comment)

You can create some bash script in user's home start_delayed_jon.sh.

Something along the lines:

#!/bin/bash
cd /path/to/your/project/directory/
RAILS_ENV=development bundle exec rake jobs:work

and run it in /etc/rc.local:

su -s /bin/bash - deploy /path/to/your/project/directory/start_delayed_jon.sh

Solution 2:

Using the Whenever Gem, you can setup a cronjob that runs it on reboot. In your schedule.rb file:

every :reboot do
 rake 'start_delayed_jobs'
end

Then in your rake file:

desc 'Start delayed jobs'
  task :start_delayed_jobs do
    system("#{Rails.root}/bin/delayed_job start")
  end
end

Solution 3:

If you are using gem 'delayed_job_active_record'. You start a delayed jobs on your local ubuntu system, simply run the below command to start

./bin/delayed_job start

and to restart

./bin/delayed_job restart

If we are in development mode, we would use the below rake task instead.

bundle exec rake jobs:work