lndg/systemd.sh

134 lines
No EOL
4.1 KiB
Bash

INSTALL_USER=${SUDO_USER:-${USER}}
REFRESH=20
RED='\033[0;31m'
NC='\033[0m'
if [ "$INSTALL_USER" == 'root' ] >/dev/null 2>&1; then
HOME_DIR='/root'
else
HOME_DIR="/home/$INSTALL_USER"
fi
function configure_jobs() {
cat << EOF > $HOME_DIR/lndg/jobs.sh
#!/bin/bash
$HOME_DIR/lndg/.venv/bin/python $HOME_DIR/lndg/jobs.py
EOF
cat << EOF > /etc/systemd/system/jobs-lndg.service
[Unit]
Description=Run Jobs For Lndg
[Service]
User=$INSTALL_USER
Group=$INSTALL_USER
ExecStart=/usr/bin/bash $HOME_DIR/lndg/jobs.sh
StandardError=append:/var/log/lnd_jobs_error.log
EOF
cat << EOF > /etc/systemd/system/jobs-lndg.timer
[Unit]
Description=Run Lndg Jobs Every $REFRESH Seconds
[Timer]
OnBootSec=300
OnUnitActiveSec=$REFRESH
AccuracySec=1
[Install]
WantedBy=timers.target
EOF
}
function configure_rebalancer() {
cat << EOF > $HOME_DIR/lndg/rebalancer.sh
#!/bin/bash
$HOME_DIR/lndg/.venv/bin/python $HOME_DIR/lndg/rebalancer.py
EOF
cat << EOF > /etc/systemd/system/rebalancer-lndg.service
[Unit]
Description=Run Rebalancer For Lndg
[Service]
User=$INSTALL_USER
Group=$INSTALL_USER
ExecStart=/usr/bin/bash $HOME_DIR/lndg/rebalancer.sh
StandardError=append:/var/log/lnd_rebalancer_error.log
RuntimeMaxSec=3600
EOF
cat << EOF > /etc/systemd/system/rebalancer-lndg.timer
[Unit]
Description=Run Lndg Rebalancer Every $REFRESH Seconds
[Timer]
OnBootSec=315
OnUnitActiveSec=$REFRESH
AccuracySec=1
[Install]
WantedBy=timers.target
EOF
}
function configure_htlc_stream() {
cat << EOF > $HOME_DIR/lndg/htlc_stream.sh
#!/bin/bash
$HOME_DIR/lndg/.venv/bin/python $HOME_DIR/lndg/htlc_stream.py
EOF
cat << EOF > /etc/systemd/system/htlc-stream-lndg.service
[Unit]
Description=Run HTLC Stream For Lndg
[Service]
User=$INSTALL_USER
Group=$INSTALL_USER
ExecStart=/usr/bin/bash $HOME_DIR/lndg/htlc_stream.sh
StandardError=append:/var/log/lnd_htlc_stream_error.log
Restart=always
RestartSec=60s
[Install]
WantedBy=multi-user.target
EOF
}
function enable_services() {
systemctl daemon-reload
sleep 3
systemctl start jobs-lndg.timer
systemctl enable jobs-lndg.timer >/dev/null 2>&1
systemctl start rebalancer-lndg.timer
systemctl enable rebalancer-lndg.timer >/dev/null 2>&1
systemctl start htlc-stream-lndg.service
systemctl enable htlc-stream-lndg.service >/dev/null 2>&1
}
function report_information() {
echo -e ""
echo -e "================================================================================================================================"
echo -e "Backend services and rebalancer setup for LNDg via systemd using user account $INSTALL_USER and a refresh interval of $REFRESH seconds."
echo -e ""
echo -e "Jobs Timer Status: ${RED}sudo systemctl status jobs-lndg.timer${NC}"
echo -e "Rebalancer Timer Status: ${RED}sudo systemctl status rebalancer-lndg.timer${NC}"
echo -e "HTLC Stream Status: ${RED}sudo systemctl status htlc-stream-lndg.service${NC}"
echo -e ""
echo -e "Last Jobs Status: ${RED}sudo systemctl status jobs-lndg.service${NC}"
echo -e "Last Rebalancer Status: ${RED}sudo systemctl status rebalancer-lndg.service${NC}"
echo -e ""
echo -e "To disable your backend services, use the following commands."
echo -e "Disable Jobs Timer: ${RED}sudo systemctl disable jobs-lndg.timer${NC}"
echo -e "Disable Rebalancer Timer: ${RED}sudo systemctl disable rebalancer-lndg.timer${NC}"
echo -e "Disable HTLC Stream: ${RED}sudo systemctl disable htlc-stream-lndg.service${NC}"
echo -e "Stop Jobs Timer: ${RED}sudo systemctl stop jobs-lndg.timer${NC}"
echo -e "Stop Rebalancer Timer: ${RED}sudo systemctl stop rebalancer-lndg.timer${NC}"
echo -e "Stop HTLC Stream: ${RED}sudo systemctl stop htlc-stream-lndg.service${NC}"
echo -e ""
echo -e "To re-enable these services, simply replace the disable/stop commands with enable/start."
echo -e "================================================================================================================================"
}
##### Main #####
echo -e "Setting up, this may take a few minutes..."
configure_jobs
configure_rebalancer
configure_htlc_stream
enable_services
report_information