diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 3738cb404..1367a0a4f 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -1142,10 +1142,8 @@ main(int argc, char **argv) if (restart) { - e_util_env_set("E_RESTART_OK", "1"); - if (getenv("E_START_MTRACK")) - e_util_env_set("MTRACK", "track"); - ecore_app_restart(); + e_system_shutdown(); + exit(111); // return code so e_start restrts e freshly } e_prefix_shutdown(); diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c index c967e2696..d4309b30d 100644 --- a/src/bin/e_start_main.c +++ b/src/bin/e_start_main.c @@ -727,6 +727,7 @@ main(int argc, char **argv) else if (child == 0) return _e_start_child(args, really_know); + putenv("E_RESTART_OK="); /* in the parent - ptrace attach and continue */ putenv("E_RESTART=1"); _e_ptrace_attach(child, &status, really_know); @@ -785,6 +786,12 @@ not_done: if (WEXITSTATUS(r) == 1) restart = EINA_FALSE; } + else if (WEXITSTATUS(status) == 111) + { + putenv("E_RESTART_OK=1"); + restart = EINA_TRUE; + done = EINA_TRUE; + } else if (!WIFEXITED(status) || stop_ptrace) done = EINA_TRUE; }