#include "fileio.h"
#include "special.h"
#include "unit-name.h"
-#include "machine.h"
#include "bus-util.h"
#include "bus-error.h"
+#include "machine.h"
+#include "machine-dbus.h"
Machine* machine_new(Manager *manager, const char *name) {
Machine *m;
goto finish;
}
+ free(temp_path);
+ temp_path = NULL;
+
if (m->unit) {
char *sl;
}
finish:
- if (r < 0) {
- if (temp_path)
- unlink(temp_path);
+ if (temp_path)
+ unlink(temp_path);
- log_error("Failed to save machine data %s: %s", m->state_file, strerror(-r));
- }
+ if (r < 0)
+ log_error_errno(r, "Failed to save machine data %s: %m", m->state_file);
return r;
}
if (r == -ENOENT)
return 0;
- log_error("Failed to read %s: %s", m->state_file, strerror(-r));
- return r;
+ return log_error_errno(r, "Failed to read %s: %m", m->state_file);
}
if (id)
return r;
log_struct(LOG_INFO,
- MESSAGE_ID(SD_MESSAGE_MACHINE_START),
+ LOG_MESSAGE_ID(SD_MESSAGE_MACHINE_START),
"NAME=%s", m->name,
"LEADER="PID_FMT, m->leader,
- "MESSAGE=New machine %s.", m->name,
+ LOG_MESSAGE("New machine %s.", m->name),
NULL);
if (!dual_timestamp_is_set(&m->timestamp))
if (!m->unit)
return 0;
- if (!m->registered) {
- r = manager_stop_unit(m->manager, m->unit, &error, &job);
- if (r < 0) {
- log_error("Failed to stop machine scope: %s", bus_error_message(&error, r));
- return r;
- }
+ r = manager_stop_unit(m->manager, m->unit, &error, &job);
+ if (r < 0) {
+ log_error("Failed to stop machine scope: %s", bus_error_message(&error, r));
+ return r;
}
free(m->scope_job);
if (m->started)
log_struct(LOG_INFO,
- MESSAGE_ID(SD_MESSAGE_MACHINE_STOP),
+ LOG_MESSAGE_ID(SD_MESSAGE_MACHINE_STOP),
"NAME=%s", m->name,
"LEADER="PID_FMT, m->leader,
- "MESSAGE=Machine %s terminated.", m->name,
+ LOG_MESSAGE("Machine %s terminated.", m->name),
NULL);
/* Kill cgroup */
if (kill(m->leader, signo) < 0)
return -errno;
+
+ return 0;
}
/* Otherwise make PID 1 do it for us, for the entire cgroup */