diff --git a/dist/common/systemd/scylla-jmx.service.mustache b/dist/common/systemd/scylla-jmx.service
similarity index 83%
rename from dist/common/systemd/scylla-jmx.service.mustache
rename to dist/common/systemd/scylla-jmx.service
index 4e1dd6e..e30dc3b 100644
--- a/dist/common/systemd/scylla-jmx.service.mustache
+++ b/dist/common/systemd/scylla-jmx.service
@@ -5,12 +5,7 @@ After=scylla-server.service
[Service]
Type=simple
-{{#debian}}
-EnvironmentFile=/etc/default/scylla-jmx
-{{/debian}}
-{{#redhat}}
EnvironmentFile=/etc/sysconfig/scylla-jmx
-{{/redhat}}
User=scylla
Group=scylla
ExecStart=/opt/scylladb/jmx/scylla-jmx $SCYLLA_JMX_PORT $SCYLLA_API_PORT $SCYLLA_API_ADDR $SCYLLA_JMX_ADDR $SCYLLA_JMX_FILE $SCYLLA_JMX_LOCAL $SCYLLA_JMX_REMOTE $SCYLLA_JMX_DEBUG
diff --git a/dist/debian/rules.mustache b/dist/debian/rules.mustache
index b527d7e..a6030f6 100755
--- a/dist/debian/rules.mustache
+++ b/dist/debian/rules.mustache
@@ -1,31 +1,12 @@
#!/usr/bin/make -f
-DOC = $(CURDIR)/debian/{{product}}-jmx/opt/scylladb/share/doc/{{product}}-jmx
-DEST = $(CURDIR)/debian/{{product}}-jmx/opt/scylladb/jmx
-M2_REPO= $(CURDIR)/m2
-
override_dh_auto_build:
override_dh_auto_clean:
override_dh_auto_install:
- mkdir -p $(CURDIR)/debian/{{product}}-jmx/etc/default/ && \
- cp $(CURDIR)/dist/common/sysconfig/scylla-jmx \
- $(CURDIR)/debian/{{product}}-jmx/etc/default/
-
- mkdir -p $(DOC) && \
- cp $(CURDIR)/*.md $(DOC)
- cp $(CURDIR)/NOTICE $(DOC)
-
- mkdir -p $(DEST)
- cp $(CURDIR)/scylla-jmx $(DEST)
- cp $(CURDIR)/scylla-jmx-1.0.jar $(DEST)
- mkdir $(DEST)/symlinks
- ln -sf /usr/bin/java $(DEST)/symlinks/scylla-jmx
-
- mkdir -p $(CURDIR)/debian/{{product}}-jmx/opt/scylladb/scripts
- # Create symlink for /usr/lib/scylla/jmx
- ln -sf /opt/scylladb/jmx $(CURDIR)/debian/{{product}}-jmx/opt/scylladb/scripts/
+ dh_auto_install
+ ./install.sh --root "$(CURDIR)/debian/{{product}}-jmx" --sysconfdir /etc/default
override_dh_installinit:
{{#scylla}}
diff --git a/dist/redhat/scylla-jmx.spec.mustache b/dist/redhat/scylla-jmx.spec.mustache
index a465f76..714ea6b 100644
--- a/dist/redhat/scylla-jmx.spec.mustache
+++ b/dist/redhat/scylla-jmx.spec.mustache
@@ -22,26 +22,9 @@ Requires: {{product}}-server java-1.8.0-openjdk-headless
%build
-MUSTACHE_DIST="\"redhat\": true"
-pystache dist/common/systemd/scylla-jmx.service.mustache "{ $MUSTACHE_DIST }" > scylla-jmx.service
%install
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/
-mkdir -p $RPM_BUILD_ROOT%{_unitdir}
-mkdir -p $RPM_BUILD_ROOT/opt/scylladb/
-
-install -m644 dist/common/sysconfig/scylla-jmx $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/
-install -m644 scylla-jmx.service $RPM_BUILD_ROOT%{_unitdir}/
-install -d -m755 $RPM_BUILD_ROOT/opt/scylladb/
-install -d -m755 $RPM_BUILD_ROOT/opt/scylladb/jmx
-install -d -m755 $RPM_BUILD_ROOT/opt/scylladb/jmx/symlinks
-install -m644 scylla-jmx-1.0.jar $RPM_BUILD_ROOT/opt/scylladb/jmx/
-install -m755 scylla-jmx $RPM_BUILD_ROOT/opt/scylladb/jmx
-ln -sf /usr/bin/java $RPM_BUILD_ROOT/opt/scylladb/jmx/symlinks/scylla-jmx
-install -d -m755 $RPM_BUILD_ROOT/opt/scylladb/scripts
-# create symlink for /usr/lib/scylla/jmx
-ln -sf /opt/scylladb/jmx $RPM_BUILD_ROOT/opt/scylladb/scripts/
+./install.sh --root "$RPM_BUILD_ROOT"
%pre
/usr/sbin/groupadd scylla 2> /dev/null || :
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000..46274c0
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,136 @@
+#!/bin/bash
+#
+# Copyright (C) 2019 ScyllaDB
+#
+
+#
+# This file is part of Scylla.
+#
+# Scylla is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Scylla is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scylla. If not, see .
+#
+
+set -e
+
+print_usage() {
+ cat < "$retc"/systemd/system/scylla-jmx.service.d/sysconfdir.conf
+[Service]
+EnvironmentFile=
+EnvironmentFile=$sysconfdir/scylla-jmx
+EOS
+ fi
+else
+ install -d -m755 "$retc"/systemd/system/scylla-jmx.service.d
+ cat << EOS > "$retc"/systemd/system/scylla-jmx.service.d/nonroot.conf
+[Service]
+EnvironmentFile=
+EnvironmentFile=$retc/sysconfig/scylla-jmx
+ExecStart=
+ExecStart=$rprefix/jmx/scylla-jmx \$SCYLLA_JMX_PORT \$SCYLLA_API_PORT \$SCYLLA_API_ADDR \$SCYLLA_JMX_ADDR \$SCYLLA_JMX_FILE \$SCYLLA_JMX_LOCAL \$SCYLLA_JMX_REMOTE \$SCYLLA_JMX_DEBUG
+User=
+Group=
+EOS
+ if [ ! -d ~/.config/systemd/user/scylla-jmx.service.d ]; then
+ mkdir -p ~/.config/systemd/user/scylla-jmx.service.d
+ fi
+ ln -srf $rsystemd/scylla-jmx.service ~/.config/systemd/user/
+ ln -srf "$retc"/systemd/system/scylla-jmx.service.d/nonroot.conf ~/.config/systemd/user/scylla-jmx.service.d
+fi
+
+install -m644 scylla-jmx-1.0.jar "$rprefix/jmx"
+install -m755 scylla-jmx "$rprefix/jmx"
+ln -sf /usr/bin/java "$rprefix/jmx/symlinks/scylla-jmx"
+# create symlink for /usr/lib/scylla/jmx
+ln -srf $rprefix/jmx "$rprefix/scripts/"
+
+if $nonroot; then
+ sed -i -e "s#/var/lib/scylla#$rprefix#g" "$rsysconfdir"/scylla-jmx
+ sed -i -e "s#/etc/scylla#$rprefix/etc/scylla#g" "$rsysconfdir"/scylla-jmx
+ sed -i -e "s#/opt/scylladb/jmx#$rprefix/jmx#g" "$rsysconfdir"/scylla-jmx
+ systemctl --user daemon-reload
+ echo "Scylla-JMX non-root install completed."
+fi
diff --git a/scripts/create-relocatable-package.py b/scripts/create-relocatable-package.py
index e64ff30..2a70acf 100755
--- a/scripts/create-relocatable-package.py
+++ b/scripts/create-relocatable-package.py
@@ -43,6 +43,7 @@ ar.add('build/SCYLLA-RELEASE-FILE', arcname='SCYLLA-RELEASE-FILE')
ar.add('build/SCYLLA-VERSION-FILE', arcname='SCYLLA-VERSION-FILE')
ar.add('build/SCYLLA-PRODUCT-FILE', arcname='SCYLLA-PRODUCT-FILE')
ar.add('dist')
+ar.add('install.sh')
ar.add('target/scylla-jmx-1.0.jar', arcname='scylla-jmx-1.0.jar')
ar.add('scripts/scylla-jmx', arcname='scylla-jmx')
ar.add('README.md')