У меня есть Systemd сценарий службы, как это:Systemd пользовательских команд для службы
#
# systemd unit file for Debian
#
# Put this in /lib/systemd/system
# 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).
#
[Unit]
Description=sidekiq
# start sidekiq only once the network, logging subsystems are available
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/home/deploy/app
User=deploy
Group=deploy
UMask=0002
ExecStart=/bin/bash -lc "bundle exec sidekiq -e ${environment} -C config/sidekiq.yml -L log/sidekiq.log -P /tmp/sidekiq.pid"
ExecStop=/bin/bash -lc "bundle exec sidekiqctl stop /tmp/sidekiq.pid"
# if we crash, restart
RestartSec=1
Restart=on-failure
# output goes to /var/log/syslog
StandardOutput=syslog
StandardError=syslog
# This will default to "bundler" if we don't specify it
SyslogIdentifier=sidekiq
[Install]
WantedBy=multi-user.target
Теперь я могу выдавать такие команды, как:
sudo systemctl enable sidekiq
sudo systemctl start sidekiq
Я хочу, чтобы создать другую пользовательскую команду, с помощью которой я могу вполне рабочие sidekiq, спокойный sidekiq я должен послать сигнал USR1 к процессу, что-то вроде этого:
sudo kill -s USR1 `cat #{sidekiq_pid}`
Я хочу сделать это с помощью Systemd службы, поэтому в основном команда, как
sudo systemctl queit sidekiq
Есть ли способ для создания пользовательских команд в Systemd файла служба? Если да, то как это сделать?
Спасибо Mike и спасибо, что создали sidekiq, мы только что купили про версию несколько дней назад. Есть ли способ создать пользовательскую команду? Перезагрузка Exec будет запутанной, если в проекте работает более одного человека. – rajat
Это системный вопрос. Я не считаю, что systemd позволяет использовать собственные глаголы типа 'systemctl quiet sidekiq', но я бы посоветовал вам делать больше исследований и не принимать мое слово для этого. –