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:
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
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
Giv scriptet eksekverbare rettigheder ved at køre følgende kommando:
chmod +x /path/to/your/script.sh
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
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.
Har du brug for hjælp til Java-tjenester eller systemadministration? Med Handyhand kan du nemt oprette din opgave helt gratis. På få minutter vil du modtage bud fra dygtige freelancere, der står klar til at hjælpe dig med dine IT-behov. Få den assistance, du har brug for, og kom hurtigt videre med dit projekt!