Last active
May 25, 2021 08:14
-
-
Save gathuku/e2de7bf6209726188eb994992b80922a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# This file tells systemd how to run Sidekiq as a 24/7 long-running daemon. | |
# | |
# Customize this file based on your bundler location, app directory, etc. | |
# Customize and copy this into /usr/lib/systemd/system (CentOS) or /lib/systemd/system (Ubuntu). | |
# Then run: | |
# - systemctl enable sidekiq | |
# - systemctl {start,stop,restart} sidekiq | |
# | |
# This file corresponds to a single Sidekiq process. Add multiple copies | |
# to run multiple processes (sidekiq-1, sidekiq-2, etc). | |
# | |
# Use `journalctl -u sidekiq -rn 100` to view the last 100 lines of log output. | |
# | |
[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: | |
# | |
# https://www.freedesktop.org/software/systemd/man/systemd.service.html | |
# https://www.freedesktop.org/software/systemd/man/systemd.exec.html | |
# | |
# THOSE PAGES ARE CRITICAL FOR ANY LINUX DEVOPS WORK; read them multiple | |
# times! systemd is a critical tool for all developers to know and understand. | |
# | |
[Service] | |
# | |
# !!!! !!!! !!!! | |
# | |
# As of v6.0.6, Sidekiq automatically supports systemd's `Type=notify` and watchdog service | |
# monitoring. If you are using an earlier version of Sidekiq, change this to `Type=simple` | |
# and remove the `WatchdogSec` line. | |
# | |
# !!!! !!!! !!!! | |
# | |
Type=notify | |
# If your Sidekiq process locks up, systemd's watchdog will restart it within seconds. | |
WatchdogSec=10 | |
WorkingDirectory=/home/deploy/gigafitpro/current | |
# If you use rbenv: | |
ExecStart=/bin/bash -lc 'exec /home/deploy/.rbenv/shims/bundle exec sidekiq -e production' | |
# If you use the system's ruby: | |
#ExecStart=/usr/local/bin/bundle exec sidekiq -e production | |
# If you use rvm in production, don't. | |
# Use `systemctl kill -s TSTP sidekiq` to quiet the Sidekiq process | |
# !!! Change this to your deploy user account !!! | |
User=deploy | |
Group=sudo | |
UMask=0002 | |
# Greatly reduce Ruby memory fragmentation and heap usage | |
# https://www.mikeperham.com/2018/04/25/taming-rails-memory-bloat/ | |
Environment=MALLOC_ARENA_MAX=2 | |
# if we crash, restart | |
RestartSec=1 | |
Restart=on-failure | |
# output goes to /var/log/syslog (Ubuntu) or /var/log/messages (CentOS) | |
StandardOutput=syslog | |
StandardError=syslog | |
# This will default to "bundler" if we don't specify it | |
SyslogIdentifier=sidekiq | |
[Install] | |
WantedBy=multi-user.target |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment