1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00
mperham--sidekiq/examples
H. Wade Minter 34f61e8bc6 Change systemd restart method to "always"
I'm running Sidekiq 6.4.1 on an Ubuntu 20.04 system with Ruby 3.1.1 installed via Snap for a Rails 7 application.

    Using this systemd template, I noticed something odd when deploying with Capistrano. When my cap script ran `sudo systemctl restart sidekiq`, the Sidekiq process would restart, briefly go active, then go inactive and stop running. I would need to SSH in and manually do a `systemctl restart sidekiq` in order to get the process back up and running.

    With some experimentation, I found that changing the `Restart` configuration from `on-failure` to `always` seems to do the trick. Now, when the Sidekiq process goes inactive, it properly restarts and stays restarted.

    I'm not 100% sure of the "why" behind what's going on, but this change seems to be effective and I have not noticed any side effects.

    Documentation of previous behavior

    Prior to deploy (process running)

    ```
    root@stage-worker01:~# systemctl status sidekiq
    ● sidekiq.service - sidekiq
         Loaded: loaded (/lib/systemd/system/sidekiq.service; enabled; vendor prese>
         Active: active (running) since Thu 2022-03-24 16:34:32 UTC; 51s ago
       Main PID: 118856 (bundle)
          Tasks: 30 (limit: 1120)
         Memory: 291.2M
         CGroup: /system.slice/sidekiq.service
                 └─118856 sidekiq 6.4.1 staging [0 of 20 busy]
    ```

    Immediately post deploy (process restarting)

    ```
    root@stage-worker01:~# systemctl status sidekiq
    ● sidekiq.service - sidekiq
         Loaded: loaded (/lib/systemd/system/sidekiq.service; enabled; vendor prese>
         Active: activating (start) since Thu 2022-03-24 16:38:35 UTC; 9s ago
       Main PID: 119572 (bundle)
          Tasks: 0 (limit: 1120)
         Memory: 43.4M
         CGroup: /system.slice/sidekiq.service
                 ‣ 119572 /var/www/sox/staging/shared/bundle/ruby/3.1.0/bin/sidekiq>
    ```

    After deploy (process started)

    ```
    Mar 24 16:38:35 stage-worker01.suggestionox.com systemd[1]: Starting sidekiq...
    root@stage-worker01:~# systemctl status sidekiq
    ● sidekiq.service - sidekiq
         Loaded: loaded (/lib/systemd/system/sidekiq.service; enabled; vendor prese>
         Active: active (running) since Thu 2022-03-24 16:38:45 UTC; 3s ago
       Main PID: 119572 (bundle)
          Tasks: 0 (limit: 1120)
         Memory: 43.4M
         CGroup: /system.slice/sidekiq.service
                 ‣ 119572 sidekiq 6.4.1 staging [0 of 20 busy]

    Mar 24 16:38:35 stage-worker01.suggestionox.com systemd[1]: Starting sidekiq...
    Mar 24 16:38:45 stage-worker01.suggestionox.com systemd[1]: Started sidekiq.
    ```

    Failure (process inactive)

    ```
    root@stage-worker01:~# systemctl status sidekiq
    ● sidekiq.service - sidekiq
         Loaded: loaded (/lib/systemd/system/sidekiq.service; enabled; vendor prese>
         Active: inactive (dead) since Thu 2022-03-24 16:38:56 UTC; 2s ago
        Process: 119572 ExecStart=/usr/bin/env bundle exec sidekiq -e staging (code>
       Main PID: 119572 (code=exited, status=0/SUCCESS)

    Mar 24 16:38:35 stage-worker01.suggestionox.com systemd[1]: Starting sidekiq...
    Mar 24 16:38:45 stage-worker01.suggestionox.com systemd[1]: Started sidekiq.
    Mar 24 16:38:56 stage-worker01.suggestionox.com systemd[1]: sidekiq.service: Su>
    ```
2022-03-24 12:53:37 -04:00
..
systemd Change systemd restart method to "always" 2022-03-24 12:53:37 -04:00
upstart Remove sidekiqctl, remove runit, if you use it, you know how to config it. 2019-10-11 08:52:28 -07:00
busy-ui.png optimize PNGs 2021-03-12 16:16:33 -08:00
complex_batch_workflow.png Add complex workflow diagram for new wiki page 2015-12-02 10:18:34 -08:00
complex_batch_workflow.svg SVG version 2021-05-17 14:11:57 -07:00
config.yml Clean up old examples 2019-08-28 10:19:39 -07:00
ent-bucket.png optimize PNGs 2021-03-12 16:16:33 -08:00
ent-concurrent.png rsn 2015-07-29 15:37:24 -07:00
ent-periodic.png rsn 2015-07-29 15:37:24 -07:00
por.rb Use new terminology in examples (#5175) 2022-02-03 08:39:24 -08:00
web-ui.png optimize PNGs 2021-03-12 16:16:33 -08:00