Skip to content

Instantly share code, notes, and snippets.

@yunano
Created May 1, 2015 15:52
Show Gist options
  • Star 43 You must be signed in to star a gist
  • Fork 28 You must be signed in to fork a gist
  • Save yunano/c27eb679a29ab70178ca to your computer and use it in GitHub Desktop.
Save yunano/c27eb679a29ab70178ca to your computer and use it in GitHub Desktop.
/etc/systemd/system/consul.service
[Unit]
Description=consul agent
Requires=network-online.target
After=network-online.target
[Service]
EnvironmentFile=-/etc/sysconfig/consul
Environment=GOMAXPROCS=2
Restart=on-failure
ExecStart=/usr/local/sbin/consul agent $OPTIONS -config-dir=/etc/consul.d
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
@lethargosapatheia
Copy link

Just as a reference, as I've also come across this topic, this comes from the official package installation (of course it needs to be adapted, according to the needs, but it should help anyway):

[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl

[Service]
EnvironmentFile=/etc/consul.d/consul.env
User=consul
Group=consul
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

@lethargosapatheia
Copy link

I see you configured $OPTIONS as a cli argument. How do you actually configure that in the environmental file? I see there's a json structure that consul might expect, but this has nothing to do with it, I gather?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment