#!/bin/sh # # Startup/shutdown script for the gmid gemini service. # GMID_USER=${GMID_USER:-root} create_gmid_run_dir() { if [ ! -d /run/gmid/ ]; then mkdir -p /run/gmid chown gmid:gmid /run/gmid fi } gmid_reload() { create_gmid_run_dir local pid="$(2>/dev/null cat /run/gmid/gmid.pid)" if [ -z "$pid" ] || ! kill -0 "$pid" >/dev/null; then echo "gmid is not running" return fi echo "Reloading gmid configuration" kill -HUP "$pid" } gmid_start() { create_gmid_run_dir local pid="$(2>/dev/null cat /run/gmid/gmid.pid)" if [ -n "$pid" ] || kill -0 "$pid" 2>/dev/null; then echo "gmid is already running" return fi echo "Starting gmid gemini service" sudo -u "$GMID_USER" -- gmid \ -c /etc/gmid.conf \ -P /run/gmid/gmid.pid } gmid_status() { create_gmid_run_dir local pid="$(2>/dev/null cat /run/gmid/gmid.pid)" if [ -z "$pid" ] || ! kill -0 "$pid" 2>/dev/null; then echo "gmid is not running" return fi echo "gmid is running" } gmid_stop() { echo "Stopping gmid gemini service" create_gmid_run_dir local pid="$(2>/dev/null cat /run/gmid/gmid.pid)" if [ -z "$pid" ] || ! kill -0 "$pid" 2>/dev/null; then echo "gmid is not running" return fi sudo -u "$GMID_USER" -- kill -TERM "$pid" } case "$1" in reload) gmid_reload ;; start) gmid_start ;; status) gmid_status ;; stop) gmid_stop ;; *) echo "Usage: $0 {reload|start|status|stop}" exit 1 esac