Genstart Systemd-tjeneste ved filændring: Trin-for-trin guide til Java-tjenester

Hvordan genstartes en Systemd-tjeneste, når en fil ændres, specifikt en Java-tjeneste, der skal genindlæses ved ændringer i en jar-fil?

For at genstarte en Systemd-tjeneste, når en jar-fil ændres, skal du bruge inotify-tools til at overvåge filen og et script til at genstarte tjenesten automatisk.

Hvordan genstartes en Systemd-tjeneste, når en fil ændres, specifikt en Java-tjeneste, der skal genindlæses ved ændringer i en jar-fil?

For at genstarte en Systemd-tjeneste, når en fil ændres, kan du bruge en kombination af inotify-tools og Systemd. Her er en trin-for-trin guide til, hvordan du kan opsætte dette:

1. Installer inotify-tools

Inotify-tools er et sæt kommandolinjeværktøjer, der giver en simpel grænseflade til inotify-funktionaliteten i Linux-kernen. Du kan installere det ved at køre følgende kommando:

sudo apt-get install inotify-tools

2. Opret et script til at overvåge jar-filen

Opret et script, der bruger inotifywait til at overvåge ændringer i jar-filen og genstarte Systemd-tjenesten, når der opdages en ændring. Her er et eksempel på et sådant script:

#!/bin/bash

# Sti til din jar-fil
JAR_FILE="/path/to/your/application.jar"

# Navn på din Systemd-tjeneste
SERVICE_NAME="your-java-service"

# Overvåg jar-filen for ændringer
inotifywait -m -e close_write --format "%w%f" "$JAR_FILE" | while read MODIFIED
do
    echo "Detected change in $MODIFIED"
    echo "Restarting $SERVICE_NAME service"
    sudo systemctl restart $SERVICE_NAME
done

3. Gør scriptet eksekverbart

Giv scriptet eksekverbare rettigheder ved at køre følgende kommando:

chmod +x /path/to/your/script.sh

4. Kør scriptet som en Systemd-tjeneste

For at sikre, at overvågningsscriptet kører automatisk ved opstart, kan du oprette en Systemd-tjeneste for det. Opret en ny servicefil i /etc/systemd/system/ kataloget, f.eks. jar-watcher.service:

[Unit]
Description=Watch for changes in jar file and restart service

[Service]
ExecStart=/path/to/your/script.sh
Restart=always

[Install]
WantedBy=multi-user.target

5. Aktivér og start tjenesten

Aktivér og start den nye Systemd-tjeneste ved at køre følgende kommandoer:

sudo systemctl enable jar-watcher.service
sudo systemctl start jar-watcher.service

Nu vil din Systemd-tjeneste automatisk blive genstartet, når der opdages ændringer i den specificerede jar-fil.

Opret din første opgave på få minutter

Spar dig selv for besvær og kom igennem din to-do liste i dag

1

Beskriv din opgave

2

Modtag bud

3

Få løst din opgave

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker