У меня эта проблема с тонким сервером, где перезапуск systemd не учитывает индивидуальную конфигурацию, поэтому он должен останавливаться и запускать каждый сервер индивидуально. Происходит то, что сначала останавливаются все серверы, а затем все запускаются, что приводит к простоям в обслуживании. Если я запускаю его из командной строки, все работает, как ожидалось, но через systemd не так. Я пробовал это на двух разных серверах, на одном ubuntu 16.04 и другом Debian 9 с тем же результатом.
Вот мой файл thin.service
[Unit]
Description=Thin Web Server
After=syslog.target
After=network.target
[Service]
Type=forking
User=luff
WorkingDirectory=/home/luff/bertani
ExecStart=/home/luff/.rvm/wrappers/bertani/thin -C config/thin.rb start
ExecStop=/home/luff/.rvm/wrappers/bertani/thin -C config/thin.rb stop
ExecReload=/home/luff/.rvm/wrappers/bertani/thin -C config/thin.rb restart
TimeoutSec=15
Restart=always
и моя конфигурация thin.rb
environment: development
address: 0.0.0.0
port: 3000
timeout: 30
log: /home/luff/logs/thin.log
pid: /home/luff/tmp/pids/thin.pid
max_conns: 1024
max_persistent_conns: 100
require: []
wait: 30
threadpool_size: 20
servers: 3
daemonize: true
onebyone: true