Skip to content

Commit

Permalink
Merge pull request #7 from ljdelight/systemd
Browse files Browse the repository at this point in the history
Systemd
  • Loading branch information
ljdelight committed Feb 11, 2016
2 parents bfdec76 + 81a89e9 commit 11d9124
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 3 deletions.
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,20 @@ run-client: final
sudo kill -9 `cat server.pid`
rm -f server.pid

gen-deb: jar readfromdev LICENSE rawdisk.deb.init
gen-deb: jar readfromdev LICENSE src/main/install/deb/ljdelight-rawdisk.init
mkdir -p build/deb/opt/ljdelight/rawdisk/
mkdir -p build/deb/etc/init.d/
mkdir -p build/deb/etc/systemd/system/
install --mode=0444 build/libs/*.jar build/deb/opt/ljdelight/rawdisk/
install --mode=0444 LICENSE build/deb/opt/ljdelight/rawdisk/
install --mode=0555 src/main/d/readfromdev/readfromdev build/deb/opt/ljdelight/rawdisk/
install --mode=0755 rawdisk.deb.init build/deb/etc/init.d/rawdisk
install --mode=0755 src/main/install/deb/ljdelight-rawdisk.init build/deb/opt/ljdelight/rawdisk/
install --mode=0644 src/main/install/deb/ljdelight-rawdisk.service build/deb/opt/ljdelight/rawdisk/
fpm -s dir -t deb -C build/deb \
--version 0.1.0 --name ljdelight-rawdisk --architecture amd64 \
--deb-no-default-config-files \
--after-install src/main/install/deb/postinst.sh \
--after-remove src/main/install/deb/postrm.sh \
--deb-user root --deb-group root
touch $@

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/bin/sh

### BEGIN INIT INFO
# Provides: rawdisk
# Required-Start: $local_fs $remote_fs $network $syslog $named
Expand Down
16 changes: 16 additions & 0 deletions src/main/install/deb/ljdelight-rawdisk.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[Unit]
Description=Rawdisk service for remote block access
After=syslog.target network.target

[Service]
Type=simple
Environment=PORT=9093
Environment=CLASSPATH=/opt/ljdelight/rawdisk/RawDiskService-all.jar

ExecStart=/usr/bin/java -classpath ${CLASSPATH} com.ljdelight.rawdisk.RawDiskServer ${PORT}
Restart=on-failure
RestartSec=3s
SuccessExitStatus=0 SIGHUP SIGINT SIGTERM SIGPIPE

[Install]
WantedBy=multi-user.target
37 changes: 37 additions & 0 deletions src/main/install/deb/postinst.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/sh
# See https://www.debian.org/doc/debian-policy/
#

set -e

case "$1" in
configure)
if [ $(command -v systemctl) > /dev/null ]; then
cp -fp /opt/ljdelight/rawdisk/ljdelight-rawdisk.service /etc/systemd/system/
systemctl --quiet enable ljdelight-rawdisk.service > /dev/null
systemctl --quiet start ljdelight-rawdisk.service > /dev/null
elif [ $(command -v update-rc.d) > /dev/null ]; then
ln -s /opt/ljdelight/rawdisk/ljdelight-rawdisk.init /etc/init.d/ljdelight-rawdisk
update-rc.d ljdelight-rawdisk defaults > /dev/null
service ljdelight-rawdisk start > /dev/null
else
echo "postinst could not register ljdelight-rawdisk: no systemctl nor update-rc.d" >&2
exit 1
fi
;;

abort-upgrade|abort-remove|abort-deconfigure)
;;

*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0
34 changes: 34 additions & 0 deletions src/main/install/deb/postrm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/sh
# See https://www.debian.org/doc/debian-policy/

set -e

case "$1" in
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
if [ $(command -v systemctl) > /dev/null ]; then
systemctl --quiet stop ljdelight-rawdisk.service > /dev/null
systemctl --quiet disable ljdelight-rawdisk.service > /dev/null
rm -f /etc/systemd/system/ljdelight-rawdisk.service
systemctl daemon-reload
elif [ $(command -v update-rc.d) > /dev/null ]; then
service ljdelight-rawdisk stop > /dev/null
update-rc.d ljdelight-rawdisk remove > /dev/null
rm -f /etc/init.d/ljdelight-rawdisk
else
echo "postrm could not determine systemctl or update-rc.d" >&2
exit 1
fi
;;

*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0

0 comments on commit 11d9124

Please sign in to comment.