Код: Выделить всё
[Unit]
Description=sidekiq low
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/var/www/backend/current
Environment="RAILS_ENV=production"
ExecStart=/home/deploy/.rvm/gems/ruby-2.6.9/wrappers/bundle exec sidekiq -C /var/www/backend/shared/config/sidekiq_low.yml
ExecReload=/bin/kill -USR1 $MAINPID
ExecStop=/bin/kill -USR1 $MAINPID
KillMode=mixed
TimeoutStopSec=86400
User=deploy
Group=deploy
UMask=0002
Environment=MALLOC_ARENA_MAX=2
# if we crash, restart
RestartSec=1
Restart=always
SyslogIdentifier=sidekiq_low
[Install]
WantedBy=multi-user.target
Проблема в том, что рабочим иногда требуются часы, чтобы закончить работу, поэтому я отправил сигнал USR1:
Код: Выделить всё
ExecReload=/bin/kill -USR1 $MAINPID
ExecStop=/bin/kill -USR1 $MAINPID
Я ожидаю, что при перезапуске сервера будут запущены новые процессы, а старые ждут завершения своей работы.
применит ли TimeoutStopSec=86400 фактическое уничтожение этих зависших процессов?
как я могу увидеть эти старые процессы?
статус systemctl не выявляет зависшие процессы
Код: Выделить всё
sudo systemctl status sidekiq-low@1974.service
● sidekiq-low@1974.service - sidekiq low
Loaded: loaded (/etc/systemd/system/sidekiq-low@1974.service; enabled; preset: enabled)
Active: active (running) since Wed 2024-07-10 13:31:14 UTC; 2h 5min ago
Main PID: 143529 (ruby)
Tasks: 39 (limit: 18829)
Memory: 540.4M (peak: 541.5M)
CPU: 5min 57.873s
CGroup: /system.slice/system-sidekiq\x2dlow.slice/sidekiq-low@1974.service
└─143529 "sidekiq 6.5.12 backend [0 of 30 busy]"
Подробнее здесь: https://stackoverflow.com/questions/787 ... ce-refresh
Мобильная версия