Zum Hauptinhalt springen
  1. Braindump/

Parallels – prl_disp_service startet nicht

2 min
Marcel Ryser
Autor
Marcel Ryser
Softwarearchitekt und Tech-Enthusiast aus Bern
Inhaltsverzeichnis

Das Problem
#

Beim Start von Parallels 5 erscheint eine Fehlermeldung wie: “Service prl_disp_service could not be started or connected to”. Den genauen Wortlaut weiss ich nicht mehr. Das passiert bei jedem Start von Parallels, und selbst ein Neustart hilft nicht.

Analyse
#

Im “Activity Monitor” ist der Prozess nicht zu finden. Manche Anwendungen nutzen ein StartupItem oder eine launchd-Konfiguration, um einen Service-Prozess zu starten – Parallels gehört dazu.

In diesem Fall sollte launchd bei jedem Boot des Macs diesen Befehl ausführen:

/Library/Parallels/Parallels Service.app/Contents/Resources/ParallelsDispatcherService start

Das ist ein Shell-Script, das wir debuggen können. Wie man Shell-Scripts debuggt, steht unter Bash-Script debuggen.

Also starten wir das Shell-Script im Debug-Modus bash -x:

sudo bash -x /Library/Parallels/Parallels\ Service.app/Contents/Resources/ParallelsDispatcherService start

und schauen uns die Debug-Ausgabe genau an:

+ RunService start
+ case $1 in
+ StartService
+ '[' $'-YES-\r' '!=' -YES- ']'
+ return

diese Ausgabe entsteht in diesen Zeilen:

# The start subroutine
StartService () {
# Check if service is enabled
[ "${PARALLELS:=-YES-}" != "-YES-" ] && return

das heisst: Sobald die Property PARALLELS in /etc/hostconfig nicht auf

PARALLELS=-YES-

gesetzt ist, soll der Service nicht starten.

In der Ausgabe oben wirkt der Vergleich mit -YES- aber etwas seltsam. Warum steht dieses \r (Carriage-Return) direkt nach -YES-? Das scheint das Problem zu sein – der Vergleich schlägt jedes Mal fehl.

Parallels hat die /etc/hostconfig irgendwie beschädigt und DOS-Zeilenenden (\r\n) statt UNIX-Zeilenenden (\n) eingeführt.

Sogar

file /etc/hostconfig

sagt dir

/etc/hostconfig: ASCII text, with CRLF line terminators

Lösung
#

Das lässt sich beheben, indem man die \r aus /etc/hostconfig entfernt:

sudo sed -i 's/\r//g' /etc/hostconfig

Nach einem Neustart oder

sudo launchctl start com.parallels.desktop.launchdaemon

sollte Parallels wie erwartet laufen.

Eine Kopie dieses Artikels habe ich auch im Parallels-Forum veröffentlicht: http://forum.parallels.com/showthread.php?t=99054