-
Notifications
You must be signed in to change notification settings - Fork 113
Expand file tree
/
Copy pathinstallService.sh
More file actions
50 lines (42 loc) · 1.28 KB
/
Copy pathinstallService.sh
File metadata and controls
50 lines (42 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
set -euo pipefail
APP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONFIG_FILE="${PI_SOMFY_CONFIG:-$APP_DIR/operateShutters.conf}"
SERVICE_NAME="${PI_SOMFY_SERVICE_NAME:-pi-somfy}"
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
APP_ARGS="${PI_SOMFY_ARGS:--a}"
if [ -n "${PI_SOMFY_PYTHON:-}" ]; then
PYTHON_BIN="$PI_SOMFY_PYTHON"
elif [ -x "$APP_DIR/.venv/bin/python" ]; then
PYTHON_BIN="$APP_DIR/.venv/bin/python"
else
PYTHON_BIN="/usr/bin/python3"
fi
if [ ! -f "$CONFIG_FILE" ]; then
cp "$APP_DIR/defaultConfig.conf" "$CONFIG_FILE"
fi
if [ "$(id -u)" -eq 0 ]; then
SUDO=()
else
SUDO=(sudo)
fi
# Default service unit: pi-somfy.service
"${SUDO[@]}" tee "$SERVICE_FILE" >/dev/null <<SERVICE
[Unit]
Description=Pi Somfy Shutter Service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=$APP_DIR
Environment=PYTHONUNBUFFERED=1
ExecStart=$PYTHON_BIN $APP_DIR/operateShutters.py -c $CONFIG_FILE $APP_ARGS
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
SERVICE
"${SUDO[@]}" systemctl daemon-reload
"${SUDO[@]}" systemctl enable "${SERVICE_NAME}.service"
"${SUDO[@]}" systemctl restart "${SERVICE_NAME}.service"
"${SUDO[@]}" systemctl --no-pager --full status "${SERVICE_NAME}.service"