Probleem: Processen Actief Houden
Processen kunnen crashen of stoppen zonder waarschuwing, wat diensten kan verstoren en downtime kan veroorzaken. Het handmatig herstarten van deze processen kost tijd en is niet efficiënt, vooral voor belangrijke systemen die de hele tijd moeten draaien.
Oplossing: Bash Script voor Procesmonitoring en Herstart
Een Bash Script Maken
Een bash script kan een Python script monitoren en herstarten als het stopt met draaien. De belangrijkste onderdelen van dit bash script omvatten:
- Een lus die continu draait
- Een commando om te controleren of het Python script draait
- Logica om het Python script te starten als het niet draait
Het script controleert of het Python proces draait met behulp van het pgrep commando. Als het proces niet wordt gevonden, start het script het opnieuw. Deze methode is eenvoudig om een script actief te houden.
Tip: Loggen voor Probleemoplossing
Voeg loggen toe aan uw bash script om bij te houden wanneer het Python script wordt herstart. Dit kan helpen bij probleemoplossing en het monitoren van de frequentie van herstarts. U kunt dit doen door een regel toe te voegen om naar een logbestand te schrijven:
echo "$(date): Restarting $SCRIPT_NAME" >> /path/to/restart.log
Plaats deze regel net voordat het Python script wordt herstart in uw bash script.
Het Bash Script Implementeren
Zo schrijft u het bash script:
-
Open een teksteditor en maak een nieuw bestand aan met de naam
monitor_script.sh. -
Voeg deze inhoud toe aan het bestand:
#!/bin/bash
SCRIPT_NAME="checkqueue.py"
SCRIPT_PATH="/path/to/checkqueue.py"
while true; do
if ! pgrep -f "$SCRIPT_NAME" > /dev/null; then
echo "Starting $SCRIPT_NAME"
python3 "$SCRIPT_PATH" &
fi
sleep 60
done
- Sla het bestand op en maak het uitvoerbaar met het commando:
chmod +x monitor_script.sh
Laten we elk onderdeel van het script uitleggen:
#!/bin/bashvertelt het systeem om bash te gebruiken om dit script uit te voeren.SCRIPT_NAMEenSCRIPT_PATHvariabelen slaan de naam en het volledige pad van het Python script op.- De
while truelus zorgt ervoor dat het script continu draait. pgrep -f "$SCRIPT_NAME"controleert of een proces dat overeenkomt met de scriptnaam draait.- Als het proces niet wordt gevonden, start het script het met
python3 "$SCRIPT_PATH" &. - Het
sleep 60commando laat het script 60 seconden wachten voordat het opnieuw controleert.
Om dit script te gebruiken, vervangt u /path/to/checkqueue.py met het werkelijke pad naar uw Python script. U kunt vervolgens het bash script op de achtergrond uitvoeren of het toevoegen aan de opstartprocessen van uw systeem om uw Python script te allen tijde actief te houden.





