qual è la differenza tra exec e dbus-launch?
Su Febbraio 9, 2021 da admin Se avvio un processo, in particolare allinizio della sessione, qual è la differenza tra lutilizzo di exec p
e dbus-launch p
?
Risposta
dbus-launch
è correlato a DBus . exec
è una shell incorporata. Vedi le loro manpage / pagine di aiuto:
dbus-launch - Utility to start a message bus from a shell script. exec - Replace the shell with the given command.
Quindi … fondamentalmente fanno due cose diverse … Mentre entrambi dovrebbero avviare il programma p
passato come parametro, puoi leggere che nel caso di dbus-launch
, alcune altre cose vengono fatte prima:
Puoi specificare un programma da eseguire; in questo caso, dbus-launch avvierà unistanza del bus di sessione, imposterà le variabili di ambiente appropriate in modo che il programma specificato possa trovare il bus, quindi eseguirà il programma specificato, con gli argomenti specificati.
In questo caso, unistanza del daemon DBus viene creata prima di creare il processo e dovrebbe eseguire un bus di sessione secondario, che viene reso disponibile al processo figlio tramite variabili di ambiente.
Nota anche che nel caso di exec
, la shell corrente è sostituita da un nuovo programma. dbus-launch
non sostituirà la shell, né il programma che avvierai insieme al demone.
Lascia un commento