vad är skillnaden mellan exec och dbus-launch?
On februari 9, 2021 by admin Om jag startar en process, särskilt vid sessionsstart, vad är skillnaden mellan att använda exec p
och dbus-launch p
?
Svar
dbus-launch
är DBus -relaterad. exec
är ett inbyggt skal. Se deras manpages / help-sidor:
dbus-launch - Utility to start a message bus from a shell script. exec - Replace the shell with the given command.
Så … de gör i princip två olika saker … Medan båda förväntas starta programmet p
skickat som en parameter kan du läsa att i fallet med dbus-launch
, görs några andra saker först:
Du kan ange ett program som ska köras; i det här fallet startar dbus-launch en sessionbussinstans, ställer in lämpliga miljövariabler så att det angivna programmet kan hitta bussen och kör sedan det angivna programmet med de angivna argumenten.
I det här fallet skapas en DBus-daemoninstans innan processen skapas, och den ska köra en sekundär sessionsbuss, som görs tillgänglig för underprocessen genom miljövariabler.
Observera också att i fallet med exec
ersätts det aktuella skalet med ett nytt program. dbus-launch
ersätter inte skalet, och inte heller programmet du startar vid sidan av demon.
Lämna ett svar