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
Code: Select all
start_ckan_development.shCode: 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
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
Mobile version