Wie starte ich CKAN-Prozesse (aber nicht Jobs/Worker) im laufenden Ckan-Docker-Entwicklungscontainer neu?Python

Python-Programme
Anonymous
 Wie starte ich CKAN-Prozesse (aber nicht Jobs/Worker) im laufenden Ckan-Docker-Entwicklungscontainer neu?

Post by Anonymous »

Ich entwickle CKAN-Erweiterungen unter Verwendung des offiziellen ckan-docker-Setups mit den Entwickler-Images und muss CKAN nach verschiedenen Updates in meiner Erweiterung neu starten.
In meinem Haupt-ckan-Container (ausgeführt über start_ckan_development.sh) werden die folgenden CKAN-Prozesse ausgeführt:

Code: Select all

$ ps ax
PID TTY      STAT   TIME COMMAND
1 ?        Ss     0:00 /bin/bash /srv/app/start_ckan_development.sh
74 ?        S      0:14 /usr/bin/python3 /usr/bin/supervisord --configuration /etc/supervisord.conf
75 ?        S      0:03 /usr/local/bin/python3.10 /usr/local/bin/ckan -c /srv/app/ckan.ini run -H 0.0.0.0
76 ?        Sl     0:49 /usr/local/bin/python3.10 /usr/local/bin/ckan -c /srv/app/ckan.ini jobs worker
266 ?        Sl    34:57 /usr/local/bin/python3.10 /usr/local/bin/ckan -c /srv/app/ckan.ini run -H 0.0.0.0
16360 pts/0    Ss     0:00 bash
16373 pts/0    R+     0:00 ps ax
Die wichtigsten CKAN-Ausführungsprozesse werden durch ein Shell-Skript gestartet (

Code: Select all

start_ckan_development.sh
), der diese Logik enthält:

Code: Select all

...
# Start the development server as the ckan user with automatic reload
while true; do
$CKAN_RUN $CKAN_OPTIONS
echo Exit with status $?. Restarting.
sleep 2
done
Frage:

Wie kann ich nur die CKAN-Prozesse neu starten, die als Server ausgeführt werden (d. h. diejenigen mit dem Befehl /usr/local/bin/ckan -c /srv/app/ckan.ini run ...), ohne den gesamten Container neu zu starten – und im Idealfall ohne Auswirkungen auf die laufenden Jobs/Worker-Prozesse?
Ich habe versucht, die laufenden Prozesse abzubrechen, aber das Skript scheint sie einfach neu zu starten. Gibt es eine saubere Möglichkeit, einen Neustart des CKAN-Servers (zum Neuladen von Code/Konfiguration während der Entwicklung) aus dem Container heraus auszulösen, ohne die Jobs/Worker-Prozesse zu berühren oder den gesamten Container zu beenden?
Kontext:
  • ckan-docker-Entwicklungsbilder
  • Lokale Erweiterungsentwicklung, die häufig Anwendungsneustarts erfordert
  • Möchten Sie Docker-Compose-Neustart-Ckan vermeiden, damit Datenbank und Jobs nicht unterbrochen werden
Irgendwelche Vorschläge? Danke!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post