summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@nomic.retiolum>2014-01-06 01:00:06 +0100
committertv <tv@nomic.retiolum>2014-01-06 01:00:06 +0100
commit89317ee561297b3626fa86db4951187bf8bccea1 (patch)
treea76770d2d2caa6895c3cd7c6da2b97b9b62e863d
parentfbc2cf879ea76a590923fbcd4bf6150be0aad35c (diff)
go: add systemd foo
-rw-r--r--go/Makefile10
-rw-r--r--go/README.markdown17
-rw-r--r--go/etc/conf.d/go.env2
-rw-r--r--go/etc/systemd/system/go.service14
4 files changed, 43 insertions, 0 deletions
diff --git a/go/Makefile b/go/Makefile
new file mode 100644
index 00000000..6c827f2b
--- /dev/null
+++ b/go/Makefile
@@ -0,0 +1,10 @@
+help:;@grep -v ^help: Makefile
+
+install: \
+ /etc/systemd/system/go.service \
+ /etc/conf.d/go.env
+ systemctl daemon-reload
+
+/etc/%: etc/%
+ @! test -e $@ || { echo file already exists: $@; exit 23; }
+ cp $< $@
diff --git a/go/README.markdown b/go/README.markdown
index 11a31975..4e2cb2cf 100644
--- a/go/README.markdown
+++ b/go/README.markdown
@@ -32,3 +32,20 @@
redis-cli keys 'go:*' | xargs redis-cli del
if you have changed `redisPrefix`, then use that instead of `go:`.
+
+## use systemd
+
+ run
+
+ make install
+
+ to install the systemd service and configuration files.
+ this will fail if the files are already installed and modified.
+
+ maybe you want to customize the configuration with
+
+ $EDITOR /etc/conf.d/go.env
+
+ and finally start the service
+
+ systemctl start go
diff --git a/go/etc/conf.d/go.env b/go/etc/conf.d/go.env
new file mode 100644
index 00000000..365bd0c7
--- /dev/null
+++ b/go/etc/conf.d/go.env
@@ -0,0 +1,2 @@
+HOSTN=go
+PORT=80
diff --git a/go/etc/systemd/system/go.service b/go/etc/systemd/system/go.service
new file mode 100644
index 00000000..c129296c
--- /dev/null
+++ b/go/etc/systemd/system/go.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=go uri shortener
+After=redis.service
+
+[Service]
+EnvironmentFile=/etc/conf.d/go.env
+ExecStart=/usr/bin/node /krebs/go
+KillMode=process
+User=go
+Group=go
+Restart=always
+
+[Install]
+WantedBy=multi-user.target