如何通过 systemd 监控 sidekiq 进程 运行?
how to monit sidekiq process run by systemd?
版本:
ubuntu 18.04.4
sidekiq 6.0.6
monit 5.27.0
我如何通过 systemd 和 monit 监控 sidekiq 进程 运行?
具体来说,monit 文件是什么样子的?(我在任何地方都没有看到 sidekiq 的 pid 文件)
sidekiq.service:
[Unit]
Description=sidekiq
After=syslog.target network.target
[Service]
Type=notify
WatchdogSec=10
WorkingDirectory=/var/www/develop/my_app/current
ExecStart=/usr/local/rvm/bin/rvm-exec 2.5.3 bundle exec sidekiq -e develop
ExecReload=/usr/bin/kill -TSTP $MAINPID
# !!! Change this to your deploy user account !!!
User=www-data
Group=www-data
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
# https://www.freedesktop.org/software/systemd/man/systemd.exec.html#StandardOutput=
StandardOutput=file:/var/www/develop/my_app/shared/log/sidekiq.log
StandardError=file:/var/www/develop/my_app/shared/log/sidekiq.log
# This will default to "bundler" if we don't specify it
SyslogIdentifier=sidekiq
[Install]
WantedBy=multi-user.target
/etc/monit/develop/my_app/sidekiq:
check process myapp_develop_sidekiq ??? <- what comes here?
start program = "/bin/systemctl start sidekiq" as uid root
stop program = "/bin/systemctl stop sidekiq" as uid root
if cpu > 80% for 5 cycles then restart
if totalmem > 16 GB for 15 cycles then restart
if 3 restarts within 5 cycles then timeout
group all_develop
也许你想要这样的东西:
ExecStartPost=echo $MAINPID > /var/run/sidekiq.pid
ExecStopPost=rm /var/run/sidekiq.pid
版本:
ubuntu 18.04.4
sidekiq 6.0.6
monit 5.27.0
我如何通过 systemd 和 monit 监控 sidekiq 进程 运行?
具体来说,monit 文件是什么样子的?(我在任何地方都没有看到 sidekiq 的 pid 文件)
sidekiq.service:
[Unit]
Description=sidekiq
After=syslog.target network.target
[Service]
Type=notify
WatchdogSec=10
WorkingDirectory=/var/www/develop/my_app/current
ExecStart=/usr/local/rvm/bin/rvm-exec 2.5.3 bundle exec sidekiq -e develop
ExecReload=/usr/bin/kill -TSTP $MAINPID
# !!! Change this to your deploy user account !!!
User=www-data
Group=www-data
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
# https://www.freedesktop.org/software/systemd/man/systemd.exec.html#StandardOutput=
StandardOutput=file:/var/www/develop/my_app/shared/log/sidekiq.log
StandardError=file:/var/www/develop/my_app/shared/log/sidekiq.log
# This will default to "bundler" if we don't specify it
SyslogIdentifier=sidekiq
[Install]
WantedBy=multi-user.target
/etc/monit/develop/my_app/sidekiq:
check process myapp_develop_sidekiq ??? <- what comes here?
start program = "/bin/systemctl start sidekiq" as uid root
stop program = "/bin/systemctl stop sidekiq" as uid root
if cpu > 80% for 5 cycles then restart
if totalmem > 16 GB for 15 cycles then restart
if 3 restarts within 5 cycles then timeout
group all_develop
也许你想要这样的东西:
ExecStartPost=echo $MAINPID > /var/run/sidekiq.pid
ExecStopPost=rm /var/run/sidekiq.pid