1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:47:46 +00:00

SystemServer: Handle missing service executable gracefully

I use the `configure-components` functionality locally during
development. There are a few services (SpiceAgent) which aren't marked
as required components, and hence aren't built in all configurations,
but we still try to launch them in all configurations.

Instead of letting the forked SystemServer process crash, lets
gracefully handle the situation of a missing binary and provide a
message to the user.
This commit is contained in:
Brian Gianforcaro 2021-08-07 03:10:45 -07:00 committed by Gunnar Beutner
parent 5acb7e4eba
commit b5b67a1747

View file

@ -131,6 +131,11 @@ void Service::activate()
void Service::spawn(int socket_fd)
{
if (!Core::File::exists(m_executable_path)) {
dbgln("{}: binary \"{}\" does not exist, skipping service.", name(), m_executable_path);
return;
}
dbgln_if(SERVICE_DEBUG, "Spawning {}", name());
m_run_timer.start();