habe UCS gerade aktualisiert und seitdem ist die Management Konsole nicht mehr verfügbar (“The Univention Management Console Web Server could not be reached. Please restart it or try again later.” erscheint nach dem Login).
Also habe ich versucht, die Management Konsole per SSH neu zu starten, mit diesem Ergebnis:
# /etc/init.d/univention-management-console-web-server restart
Restarting Univention Management Console Web Server.
Traceback (most recent call last):
File "/usr/sbin/univention-management-console-web-server", line 58, in <module>
from daemon.runner import DaemonRunner, DaemonRunnerStopFailureError, DaemonRunnerStartFailureError
File "/usr/lib/pymodules/python2.7/daemon/runner.py", line 25, in <module>
import pidlockfile
File "/usr/lib/pymodules/python2.7/daemon/pidlockfile.py", line 33, in <module>
class PIDLockFile(LinkFileLock, object):
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
done
rein gefühlsfäßig sehe ich noch kein Problem mit den letzten Updates.
Der Trace sagt, dass die generischen Pythonmodule ein Problem mit dem PID-File hatten.
In dem steht normalerweise die Prozess-ID. Man kann damit nachsehen, ob ein z.B. durch ein Init-Skript gestarteter Prozess noch läuft.
Im einfachsten Fall reicht ein “stop - warten - start” anstelle “restart”. Wenn die Funktionen beim “stop” gut programmiert sind, könnten sie übriggebliebene PID-Files wegräumen. Es empfiehlt sich aber, das zu kontrollieren.
In hartnäckigen Fällen ist der Prozess selbst steckengeblieben. Dann sollte man die AEG-Methode (aus - ein - geht wieder) in Erwägung ziehen. Das geht manchmal schneller.
danke für die Antwort.
Hatte es bereits vorher schon mit einem “stop” -> “start” versucht, ohne Erfolg (meistens ist ein “restart” ja sowieso einfach das aufrufen eines “stop” und “start” hinterinander weg). Habe gerade eben den Server komplett neu gestartet, die Management Console ist nach wie vor nicht verfügbar, ein “stop” -> “start” bringt ein identisches Ergebnis:
[code]# /etc/init.d/univention-management-console-web-server stop
[info] Stopping Univention Management Console Web Server.
Traceback (most recent call last):
File “/usr/sbin/univention-management-console-web-server”, line 58, in
from daemon.runner import DaemonRunner, DaemonRunnerStopFailureError, DaemonRunnerStartFailureError
File “/usr/lib/pymodules/python2.7/daemon/runner.py”, line 25, in
import pidlockfile
File “/usr/lib/pymodules/python2.7/daemon/pidlockfile.py”, line 33, in
class PIDLockFile(LinkFileLock, object):
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
done.
[info] Starting Univention Management Console Web Server.
Traceback (most recent call last):
File “/usr/sbin/univention-management-console-web-server”, line 58, in
from daemon.runner import DaemonRunner, DaemonRunnerStopFailureError, DaemonRunnerStartFailureError
File “/usr/lib/pymodules/python2.7/daemon/runner.py”, line 25, in
import pidlockfile
File “/usr/lib/pymodules/python2.7/daemon/pidlockfile.py”, line 33, in
class PIDLockFile(LinkFileLock, object):
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
done.
[/code]
Der letzte Punkt des Trace ist ja “function() argument 1 must be code, not str”. Liest sich das nicht eher wie ein bug, dass eine Funktion/Methode im Code mit falschen Argumenten aufgerufen wird (Es wird im ersten Argument der Datentyp “code” erwartet und “string” wurde übergeben).
Die Lösung war ein installiertes Python Modul “lockfile”, welches inkompatibel zu “pidlockfile” war. Ich habe aber keine Ahnung, wie das auf den Server gelangt ist, ich habe dort nie irgendwas mit “pip” installiert.
Nach einem
pip uninstall lockfile
wurde es deinstalliert und sofort startet der univention-management-console-web-server wieder…