Forked from dsadaka/\lib\systemd\system\sidekiq-static.service
Last active
May 3, 2024 07:07
-
-
Save sj26/5d6d0bff1adf06d2ef2f1468cd9d3402 to your computer and use it in GitHub Desktop.
systemd unit files for multiple sidekiq workers
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
[Unit] | |
Description=Sidekiq workers | |
# start as many workers as you want here | |
[email protected] | |
[email protected] | |
# ... | |
[Service] | |
Type=oneshot | |
ExecStart=/bin/true | |
RemainAfterExit=true |
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
[Unit] | |
Description=Sidekiq worker %I | |
# restarts/stops with sidekiq | |
PartOf=sidekiq.service | |
After=network.target | |
[Service] | |
# Run as a systemd notify service with watchdog support (sidekiq v6.0.6+) | |
Type=notify | |
WatchdogSec=5 | |
# Modify to your application user/group/pwd | |
User=app | |
Group=app | |
UMask=0002 | |
WorkingDirectory=/app | |
ExecStart=/app/bin/sidekiq -C config/sidekiq.yml -e production | |
# restart & stop send TERM to main process, wait up to 30 seconds, then KILL if still running | |
KillMode=mixed | |
TimeoutStopSec=30 | |
# restart on non-zero exit or other failure after 5 seconds | |
Restart=on-failure | |
RestartSec=5 | |
# don't create a new systemd.slice per instance | |
Slice=system.slice |
@collimarco most systemctl commands take a pattern, so to quiet you can:
systemctl kill --signal=USR1 "sidekiq@*.service"
and to restart you can:
systemctl restart "sidekiq@*.service"
but because of PartOf=sidekiq.service
you can just restart the parent and all the instances will restart, too:
systemctl restart sidekiq.service
which is probably what service restart sidekiq
is doing under the hood.
Is this still valid and will it work for Ubuntu 20?
Probably!
This is out of date as of April 2023. -i is no longer a flag.
It looks like there is limited guidance other than ~ Sidekiq Pro or Foreman make it really easy.
This is out of date as of April 2023. -i is no longer a flag.
I've just removed -i
. It was an old option required for sidekiq pro's reliable fetch, but is no longer used.
The rest of the example should work.
@sj26 very helpful thank you so much.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for this!
What command do you use to quiet all the sidekiq workers at once (e.g. before a capistrano deploy)?
I used this for a single process:
pgrep -f 'sidekiq' | xargs kill -USR1
What command do you use to restart all the sidekiq processes at once (e.g. after a capistrano deploy)?
I used this for a single process:
sudo service sidekiq restart