void manager_free(Manager *m) {
UnitType c;
+ int i;
assert(m);
free(m->switch_root);
free(m->switch_root_init);
+ for (i = 0; i < RLIMIT_NLIMITS; i++)
+ free(m->rlimit[i]);
+
free(m);
}
fprintf(f, "taint-usr=%s\n", yes_no(m->taint_usr));
dual_timestamp_serialize(f, "initrd-timestamp", &m->initrd_timestamp);
- dual_timestamp_serialize(f, "startup-timestamp", &m->startup_timestamp);
- dual_timestamp_serialize(f, "finish-timestamp", &m->finish_timestamp);
+
+ if (! in_initrd()) {
+ dual_timestamp_serialize(f, "startup-timestamp", &m->startup_timestamp);
+ dual_timestamp_serialize(f, "finish-timestamp", &m->finish_timestamp);
+ }
fputc('\n', f);
return 0;
}
+int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit) {
+ int i;
+
+ assert(m);
+
+ for (i = 0; i < RLIMIT_NLIMITS; i++) {
+ if (default_rlimit[i]) {
+ m->rlimit[i] = newdup(struct rlimit, default_rlimit[i], 1);
+
+ if (!m->rlimit[i])
+ return -ENOMEM;
+ }
+ }
+
+ return 0;
+}
+
+
void manager_recheck_journal(Manager *m) {
Unit *u;