yahns Ruby server user/dev discussion
 help / color / mirror / code / Atom feed
blob 1ee010f5ba205e39739c68e3dc37e4c846c88a4c 1668 bytes (raw)
name: examples/yahns@.service 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
# ==> /etc/systemd/system/yahns@.service <==
# Since SIGUSR2 upgrades do not work under systemd, this service
# file allows starting two (or more) simultaneous services
# during upgrade (e.g. yahns@1 and yahns@2) with the intention
# that they are both running during the upgrade process.
#
# This allows upgrading without downtime, using yahns@2 as a
# temporary hot spare:
#
#   systemctl start yahns@2
#   sleep 2 # wait for yahns@2 to boot, increase as necessary for big apps
#   systemctl restart yahns@1
#   sleep 2 # wait for yahns@1 to warmup
#   systemctl stop yahns@2

[Unit]
Description = yahns Ruby server %i
Wants = yahns.socket
After = yahns.socket

[Service]
# yahns can handle lots of open files:
LimitNOFILE = 32768
LimitCORE = infinity

# The listen socket we give yahns should be blocking for optimal
# load distribution between processes under the Linux kernel.
# NonBlocking is false by default in systemd, but we specify it
# here anyways to discourage users from blindly changing it.
Sockets = yahns.socket
NonBlocking = false

# bundler users must use the "--keep-file-descriptors" switch, here:
# ExecStart = /path/to/bin/bundle exec --keep-file-descriptors yahns -c ...
ExecStart = /path/to/bin/yahns -c /path/to/yahns.conf.rb
KillSignal = SIGQUIT
User = www-data
Group = www-data
ExecReload = /bin/kill -HUP $MAINPID

# this should match the shutdown_timeout value in yahns_config(5)
TimeoutStopSec = 600

# Only kill the master process, it may be harmful to signal
# workers via default "control-group" setting since some
# Ruby extensions and applications misbehave on interrupts
KillMode = process

[Install]
WantedBy = multi-user.target

debug log:

solving 1ee010f ...
found 1ee010f in https://yhbt.net/yahns.git/

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/yahns.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).