-
-
Save mkhuda/132787f9d54890a183d665eb4560f196 to your computer and use it in GitHub Desktop.
# | |
# Sidekiq auto start using systemd unit file for Ubuntu 16.04 | |
# | |
# Put this in /lib/systemd/system (Ubuntu). | |
# Run: | |
# 1. systemctl enable sidekiq (to enable sidekiq service) | |
# 2. systemctl {start,stop,restart} sidekiq (to start sidekiq service) | |
# | |
# This file corresponds to a single Sidekiq process. Add multiple copies | |
# to run multiple processes (sidekiq-1, sidekiq-2, etc). | |
# | |
# See Inspeqtor's Systemd wiki page for more detail about Systemd: | |
# https://github.com/mperham/inspeqtor/wiki/Systemd | |
# | |
[Unit] | |
Description=sidekiq | |
# start us only once the network and logging subsystems are available, | |
# consider adding redis-server.service if Redis is local and systemd-managed. | |
After=syslog.target network.target | |
# See these pages for lots of options: | |
# http://0pointer.de/public/systemd-man/systemd.service.html | |
# http://0pointer.de/public/systemd-man/systemd.exec.html | |
[Service] | |
Type=simple | |
WorkingDirectory=/home/Public/Rails/your-rails-app | |
# If you use rbenv or rvm: | |
ExecStart=/bin/bash -lc 'bundle exec sidekiq -e production' | |
# If you use the system's ruby: | |
# ExecStart=bundle exec sidekiq -e production | |
User=your-username | |
Group=your-username | |
UMask=0002 | |
# if we crash, restart | |
RestartSec=1 | |
Restart=on-failure | |
# output goes to /var/log/syslog | |
StandardOutput=syslog | |
StandardError=syslog | |
# This will default to "bundler" if we don't specify it | |
SyslogIdentifier=sidekiq | |
[Install] | |
WantedBy=multi-user.target |
its run only with sudo ?
Nice - thanks.
I ran on a non-root user and encountered error: failed at step group spawning/bin/bash: operation root permitted.
My solution: just remove user and group from service file
thank you - works fine!
I ran on a non-root user and encountered error: failed at step group spawning/bin/bash: operation root permitted.
My solution: just remove user and group from service file
To get cap production sidekiq:start
to work, I followed this advice and also put the service file in /lib/systemd/user
instead of /lib/systemd/system
. But putting it in the user
directory isn't really a fix: the service doesn't continue running when the non-root user isn't logged in.
Why would it not work for me in the system folder when it appears to have worked for others? Why did I need to remove User
and Group
when they specify my deploy user?
Thank you man