94 lines
1.5 KiB
Bash
94 lines
1.5 KiB
Bash
#!/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
|