我在一台瘦服务器上遇到了这个问题,其中 systemd restart 不遵循 onebyone 配置,因此它应该单独停止和启动每个服务器。发生的情况是,所有服务器都先停止,然后全部启动,这导致服务停机。如果我从命令行启动它,一切都会按预期工作,但通过 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