diff --git a/Install.sh b/Install.sh index fdf90ca..7022266 100644 --- a/Install.sh +++ b/Install.sh @@ -80,64 +80,40 @@ chmod +x "$INSTALL_DIR/run_app.sh" || { exit 1 } -# Check and update the signage_player.service file -if [[ -f "$SERVICE_FILE" ]]; then - echo "Checking signage_player.service file..." - WORKING_DIR=$(grep -oP '(?<=^WorkingDirectory=).*' "$SERVICE_FILE") - EXEC_START=$(grep -oP '(?<=^ExecStart=).*' "$SERVICE_FILE") +# Create the signage_player.service file in the installation folder +SERVICE_TEMPLATE="$INSTALL_DIR/signage_player.service" +echo "Creating signage_player.service file in the installation folder..." +cat < "$SERVICE_TEMPLATE" +[Unit] +Description=Signage Player Service +After=network.target - EXPECTED_WORKING_DIR="$INSTALL_DIR" - EXPECTED_EXEC_START="$INSTALL_DIR/run_app.sh" +[Service] +Type=simple +WorkingDirectory=$INSTALL_DIR +ExecStart=$INSTALL_DIR/run_app.sh +Restart=always +RestartSec=5 - if [[ "$WORKING_DIR" != "$EXPECTED_WORKING_DIR" || "$EXEC_START" != "$EXPECTED_EXEC_START" ]]; then - echo "Updating signage_player.service file..." - sudo cp "$INSTALL_DIR/signage_player.service" "$SERVICE_FILE" - sudo sed -i "s|^WorkingDirectory=.*|WorkingDirectory=$INSTALL_DIR|" "$SERVICE_FILE" - sudo sed -i "s|^ExecStart=.*|ExecStart=$INSTALL_DIR/run_app.sh|" "$SERVICE_FILE" - sudo systemctl daemon-reload || { - echo "Error: Failed to reload systemd daemon." - read -p "Press any key to close the terminal..." -n 1 -s - exit 1 - } - echo "signage_player.service file updated successfully." - else - echo "signage_player.service file is already configured correctly." - fi -else - echo "signage_player.service file not found. Copying and configuring it..." - sudo cp "$INSTALL_DIR/signage_player.service" "$SERVICE_FILE" - sudo sed -i "s|^WorkingDirectory=.*|WorkingDirectory=$INSTALL_DIR|" "$SERVICE_FILE" - sudo sed -i "s|^ExecStart=.*|ExecStart=$INSTALL_DIR/run_app.sh|" "$SERVICE_FILE" - sudo systemctl daemon-reload || { - echo "Error: Failed to reload systemd daemon." - read -p "Press any key to close the terminal..." -n 1 -s - exit 1 - } - echo "signage_player.service file created and configured successfully." -fi +[Install] +WantedBy=multi-user.target +EOF -# Check and update the working directory in run_app.sh -echo "Checking run_app.sh for correct working directory..." -if [[ -f "$RUN_APP_FILE" ]]; then - CURRENT_WORKING_DIR=$(grep -oP '(?<=^cd ).*' "$RUN_APP_FILE" | head -n 1) - EXPECTED_WORKING_DIR="$INSTALL_DIR/src" - - if [[ "$CURRENT_WORKING_DIR" != "$EXPECTED_WORKING_DIR" ]]; then - echo "Updating working directory in run_app.sh..." - sudo sed -i "s|^cd .*|cd $EXPECTED_WORKING_DIR|" "$RUN_APP_FILE" || { - echo "Error: Failed to update working directory in run_app.sh." - read -p "Press any key to close the terminal..." -n 1 -s - exit 1 - } - echo "run_app.sh updated successfully." - else - echo "run_app.sh is already configured correctly." - fi -else - echo "Error: run_app.sh file not found." +# Copy the service file to the systemd service directory +echo "Copying signage_player.service file to $SERVICE_FILE..." +sudo cp "$SERVICE_TEMPLATE" "$SERVICE_FILE" || { + echo "Error: Failed to copy signage_player.service file." read -p "Press any key to close the terminal..." -n 1 -s exit 1 -fi +} + +# Reload systemd daemon +echo "Reloading systemd daemon..." +sudo systemctl daemon-reload || { + echo "Error: Failed to reload systemd daemon." + read -p "Press any key to close the terminal..." -n 1 -s + exit 1 +} # Enable the service echo "Enabling signage_player.service..." @@ -147,6 +123,8 @@ sudo systemctl enable signage_player.service || { exit 1 } +echo "signage_player.service file created, copied, and enabled successfully." + # Restart the system to check if the service starts echo "Restarting the system to check if the service starts..." sudo reboot || {