daemon: don't autostart new apps when studio is stopped

This commit is contained in:
Nedko Arnaudov 2009-12-08 21:08:51 +02:00
parent 20239b75b6
commit 98745d3543
1 changed files with 13 additions and 9 deletions

View File

@ -32,6 +32,7 @@
#include "../dbus/error.h"
#include "../dbus_constants.h"
#include "loader.h"
#include "studio_internal.h"
struct ladish_app
{
@ -565,7 +566,7 @@ static void run_custom(struct dbus_method_call * call_ptr)
index++;
}
app_ptr = add_app_internal(supervisor_ptr, name, commandline, terminal, false, 0);
app_ptr = add_app_internal(supervisor_ptr, name, commandline, terminal, true, 0);
free(name);
@ -575,17 +576,20 @@ static void run_custom(struct dbus_method_call * call_ptr)
return;
}
if (!loader_execute(supervisor_ptr->name, app_ptr->name, "/", terminal, commandline, &app_ptr->pid))
if (studio_is_started())
{
lash_dbus_error(call_ptr, LASH_DBUS_ERROR_GENERIC, "Execution of '%s' failed", commandline);
remove_app_internal(supervisor_ptr, app_ptr);
return;
if (!loader_execute(supervisor_ptr->name, app_ptr->name, "/", terminal, commandline, &app_ptr->pid))
{
lash_dbus_error(call_ptr, LASH_DBUS_ERROR_GENERIC, "Execution of '%s' failed", commandline);
remove_app_internal(supervisor_ptr, app_ptr);
return;
}
log_info("%s pid is %lu", app_ptr->name, (unsigned long)app_ptr->pid);
emit_app_state_changed(supervisor_ptr, app_ptr);
}
log_info("%s pid is %lu", app_ptr->name, (unsigned long)app_ptr->pid);
emit_app_state_changed(supervisor_ptr, app_ptr);
method_return_new_void(call_ptr);
}