From 9492c0baf307fb2e4809d88cd3cf2c7030aeae7b Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Tue, 8 Sep 2020 16:56:50 +0100 Subject: [PATCH] Add grow system service --- service/README.md | 14 +++++++++++++ service/grow-monitor.service | 14 +++++++++++++ service/install.sh | 40 ++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 service/README.md create mode 100644 service/grow-monitor.service create mode 100755 service/install.sh diff --git a/service/README.md b/service/README.md new file mode 100644 index 0000000..c43ce88 --- /dev/null +++ b/service/README.md @@ -0,0 +1,14 @@ +# Grow Service + +This script will install Grow as a service on your Raspberry Pi, allowing it to run from boot and recover from errors. + +# Useful Commands + +* View service status: `systemctl status grow-monitor` +* Stop service: `sudo systemctl stop grow-monitor` +* Start service: `sudo systemctl start grow-monitor` +* View full debug/error output: `journalctl --no-pager --unit grow-monitor` + +# Configuring Grow + +You can configure grow using the on-screen UI, or by editing the settings in `/etc/default/grow` diff --git a/service/grow-monitor.service b/service/grow-monitor.service new file mode 100644 index 0000000..58f8c63 --- /dev/null +++ b/service/grow-monitor.service @@ -0,0 +1,14 @@ +[Unit] +Description=Grow Monitoring Service +After=multi-user.target + +[Service] +Type=simple +WorkingDirectory=/usr/share/grow-monitor +ExecStart=/usr/bin/grow-monitor /etc/default/grow +Restart=on-failure +StandardOutput=syslog+console +StandardError=syslog+console + +[Install] +WantedBy=multi-user.target diff --git a/service/install.sh b/service/install.sh new file mode 100755 index 0000000..d2f0bd5 --- /dev/null +++ b/service/install.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +user_check() { + if [ $(id -u) -ne 0 ]; then + printf "Script must be run as root. Try 'sudo ./install.sh'\n" + exit 1 + fi +} + +success() { + echo -e "$(tput setaf 2)$1$(tput sgr0)" +} + +inform() { + echo -e "$(tput setaf 6)$1$(tput sgr0)" +} + +warning() { + echo -e "$(tput setaf 1)$1$(tput sgr0)" +} + +user_check + +inform "Copying icons to /usr/share/grow-monitor...\n" +mkdir -p /usr/share/grow-monitor/icons +cp ../examples/icons/* /usr/share/grow-monitor/icons + +inform "Installing grow-monitor to /usr/bin/grow-monitor...\n" +cp ../examples/monitor.py /usr/bin/grow-monitor +chmod +x /usr/bin/grow-monitor + +inform "Installing settings to /etc/default/grow...\n" +cp ../examples/settings.yml /etc/default/grow + +inform "Installing systemd service...\n" +cp grow-monitor.service /etc/systemd/system/ +systemctl reenable grow-monitor.service +systemctl start grow-monitor.service + +inform "\nTo see grow debug output, run: \"journalctl --no-pager --unit grow-monitor\"\n"