Skip to content

Instantly share code, notes, and snippets.

@stevensona
Last active June 17, 2021 12:26
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save stevensona/17124c224b9988222824c6e1858b8169 to your computer and use it in GitHub Desktop.
Save stevensona/17124c224b9988222824c6e1858b8169 to your computer and use it in GitHub Desktop.
systemd unit file for running ruby/rails delayed_job as service
# Keep delayed job workers running using systemd on ubuntu
# Usage
# Start "sudo systemctl start delayed_job@{0..3}" to start 4 worker instances
# Enable "sudo systemctl enable delayed_job@{0..3}" to enable 4 worker instances
# Restart "sudo systemctl restart delayed_job@{0..3}" to restart 4 worker instances
# Disable "sudo systemctl disable delayed_job@{0..3}" to disable 4 worker instances
# Stop "sudo systemctl stop delayed_job@{0..3}" to stop 4 worker instances
[Unit]
Description=Delayed Job Worker %i
After=syslog.target network.target
AssertPathExists=/var/www/app
[Service]
Type=simple
WorkingDirectory=/var/www/app
ExecStart=/bin/bash -lc 'RAILS_ENV=production bundle exec rake jobs:work'
KillSignal=SIGINT
User=deploy
Group=deploy
UMask=0002
# Restart after 1 minute delay
Restart=on-failure
RestartSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=dj_worker_%i
[Install]
WantedBy=multi-user.target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment