Was ist der Unterschied zwischen Exec und Dbus-Launch?
On Februar 9, 2021 by admin Wenn ich einen Prozess starte, insbesondere beim Sitzungsstart, was ist der Unterschied zwischen der Verwendung von exec p
und dbus-launch p
?
Antwort
dbus-launch
ist DBus -bezogen. exec
ist eine integrierte Shell. Siehe ihre Manpages / Hilfeseiten:
dbus-launch - Utility to start a message bus from a shell script. exec - Replace the shell with the given command.
Also … sie machen im Grunde zwei verschiedene Dinge … Während von beiden erwartet wird, dass sie das Programm p
als Parameter übergeben, können Sie lesen, dass im Fall von dbus-launch
zuerst einige andere Dinge getan werden:
Sie können ein Programm angeben, das ausgeführt werden soll. In diesem Fall startet dbus-launch eine Sitzungsbusinstanz, legt die entsprechenden Umgebungsvariablen fest, damit das angegebene Programm den Bus finden kann, und führt dann das angegebene Programm mit den angegebenen Argumenten aus.
In diesem Fall wird vor dem Erstellen des Prozesses eine DBus-Daemon-Instanz erstellt, und es sollte ein sekundärer Sitzungsbus ausgeführt werden, der dem untergeordneten Prozess über Umgebungsvariablen zur Verfügung gestellt wird.
Beachten Sie auch, dass im Fall von exec
die aktuelle Shell durch ein neues Programm ersetzt wird. dbus-launch
ersetzt weder die Shell noch das Programm, das Sie neben dem Dämon starten.
Schreibe einen Kommentar