#!/bin/bash
# 使い方
#
# example_serviceを有効にする
# ./service.sh i example_service
#
# example_serviceを無効にする
# ./service.sh rm example_service
COMMAND=$1
NAME=$2
SERVICE_EXISTS=$(test -f "$NAME.service" && echo 1 || echo 0)
TIMER_EXISTS=$(test -f "$NAME.timer" && echo 1 || echo 0)
if [ $SERVICE_EXISTS = 0 ]; then
# serviceファイルが存在しなかったらエラーを返す
echo "Service \"$NAME\" not found"
exit 1
fi
if [ "$COMMAND" == "i" ]; then
echo Install $SERVICE_NAME
# serviceファイルをコピーする
sudo cp $NAME.service /etc/systemd/system
if [ $TIMER_EXISTS = 1 ]; then
# timerファイルが存在すればそれもコピーする
sudo cp $NAME.timer /etc/systemd/system
fi
# デーモンに変更を通知する
sudo systemctl daemon-reload
# serviceを有効にする
sudo systemctl enable $NAME.service
if [ $TIMER_EXISTS = 1 ]; then
# timerファイルが存在すればそれも有効にする
sudo systemctl enable $NAME.timer
fi
# timerを開始する
sudo systemctl start $NAME.timer
exit 0
elif [ "$COMMAND" == "rm" ]; then
echo Uninstall $SERVICE_NAME
TIMER_FILEPATH=/etc/systemd/system/$NAME.timer
SERVICE_FILEPATH=/etc/systemd/system/$NAME.service
if [ -f $TIMER_FILEPATH ]; then
# timerファイルがあれば停止して削除する
sudo systemctl stop $NAME.timer
sudo systemctl disable $NAME.timer
sudo rm $TIMER_FILEPATH
fi
if [ -f $SERVICE_FILEPATH ]; then
# serviceファイルがあれば停止して削除する
sudo systemctl disable $NAME.service
sudo rm $SERVICE_FILEPATH
fi
# デーモンに変更を通知する
sudo systemctl daemon-reload
exit 0
fi