Author: Paolo Lulli <paolo@lulli.net>
Service create/start/stop/log wrapper
sqt | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/sqt b/sqt new file mode 100755 index 0000000000000000000000000000000000000000..513fc4830cf1195c412350967693dcc61292576a --- /dev/null +++ b/sqt @@ -0,0 +1,156 @@ +#! /bin/bash + +SYSDIR=$HOME/.config/systemd/user +red=`tput setaf 1` +green=`tput setaf 2` +reset=`tput sgr0` + +function usage(){ + echo "$(basename $0) <args>" + echo "" + echo "$(basename $0) -c|--create <service> : Creates a new service <service>.service" + echo "$(basename $0) -l|--log <service> : Get logs for <service>.service" + echo "$(basename $0) -x|--status <service> : Status for <service>.service" + echo "$(basename $0) -s|--start <service> : Starts <service>.service" + echo "$(basename $0) -S|--stop <service> : Stops <service>.service" + echo "$(basename $0) -e|--enable <service> : Enables <service>.service" + echo "$(basename $0) -d|--disable <service> : Disables <service>.service" +} + +option=$1 +params=${@:2} + +function service_log() +{ + service="$1" + cmd="journalctl --user -u ${service}.service" + echo "Cmd: [${green}${cmd}${reset}]" + + eval "${cmd}" +} + +function service_status() +{ + service="$1" + cmd="systemctl --user status ${service}.service" + echo "Cmd: [${green}${cmd}${reset}]" + + eval "${cmd}" +} + +function service_start() +{ + service="$1" + cmd="systemctl --user start ${service}.service" + echo "Cmd: [${green}${cmd}${reset}]" + + eval "${cmd}" +} + +function service_stop() +{ + service="$1" + cmd="systemctl --user stop ${service}.service" + echo "Cmd: [${green}${cmd}${reset}]" + + eval "${cmd}" +} + +function service_enable() +{ + service="$1" + cmd="systemctl --user enable ${service}.service" + echo "Cmd: [${green}${cmd}${reset}]" + + eval "${cmd}" +} + +function service_disable() +{ + service="$1" + cmd="systemctl --user disable ${service}.service" + echo "Cmd: [${green}${cmd}${reset}]" + + eval "${cmd}" +} + +function service_create() +{ + service="$1" + unit_name=${SYSDIR}/${service}.service + script_name=${HOME}/bin/service-${service}.sh + + test -f ${unit_name} && echo "File exists: ${unit_name}" + test -f ${unit_name} && exit 1 + + cat<<__EOT__>${unit_name} + + [Unit] + + Description=Run ${service} + DefaultDependencies=no + After=network.target + + [Service] + + Type=simple + ExecStart=%h/bin/service-${service}.sh + TimeoutStartSec=0 + Restart=on-failure + RemainAfterExit=yes + #StandardOutput=file:%h/log_file + + [Install] + + WantedBy=default.target +__EOT__ + + echo "Created unit: [${unit_name}]" + + test -f ${script_name} && exit 0 + cat<<__EOT__>${script_name} + #! /bin/bash + # + echo "START ${service} CALLED" + + # Edit here start of ${service}" + +__EOT__ + + chmod 755 ${script_name} + eval ${cmd} +} + + +if [ "$option" = "-c" ] || [ "$option" = "--create" ]; then + service_create "${params}" + exit 0 +fi + +if [ "$option" = "-l" ] || [ "$option" = "--log" ]; then + service_log "${params}" + exit 0 +fi +if [ "$option" = "-x" ] || [ "$option" = "--status" ]; then + service_status "${params}" + exit 0 +fi +if [ "$option" = "-s" ] || [ "$option" = "--start" ]; then + service_start "${params}" + exit 0 +fi +if [ "$option" = "-S" ] || [ "$option" = "--stop" ]; then + service_stop "${params}" + exit 0 +fi + +if [ "$option" = "-e" ] || [ "$option" = "--enable" ]; then + service_enable "${params}" + exit 0 +fi +if [ "$option" = "-d" ] || [ "$option" = "--disable" ]; then + service_disable "${params}" + exit 0 +fi + +usage;