return bus_log_create_error(r);
if (arg_nice_set) {
- if (setpriority(PRIO_PROCESS, 0, arg_nice) < 0) {
- log_error("Failed to set nice level: %m");
- return -errno;
- }
+ if (setpriority(PRIO_PROCESS, 0, arg_nice) < 0)
+ return log_error_errno(errno, "Failed to set nice level: %m");
}
if (arg_exec_group) {
gid_t gid;
r = get_group_creds(&arg_exec_group, &gid);
- if (r < 0) {
- log_error_errno(r, "Failed to resolve group %s: %m", arg_exec_group);
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to resolve group %s: %m", arg_exec_group);
- if (setresgid(gid, gid, gid) < 0) {
- log_error("Failed to change GID to " GID_FMT ": %m", gid);
- return -errno;
- }
+ if (setresgid(gid, gid, gid) < 0)
+ return log_error_errno(errno, "Failed to change GID to " GID_FMT ": %m", gid);
}
if (arg_exec_user) {
gid_t gid;
r = get_user_creds(&arg_exec_user, &uid, &gid, &home, &shell);
- if (r < 0) {
- log_error_errno(r, "Failed to resolve user %s: %m", arg_exec_user);
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to resolve user %s: %m", arg_exec_user);
r = strv_extendf(&user_env, "HOME=%s", home);
if (r < 0)
return log_oom();
if (!arg_exec_group) {
- if (setresgid(gid, gid, gid) < 0) {
- log_error("Failed to change GID to " GID_FMT ": %m", gid);
- return -errno;
- }
+ if (setresgid(gid, gid, gid) < 0)
+ return log_error_errno(errno, "Failed to change GID to " GID_FMT ": %m", gid);
}
- if (setresuid(uid, uid, uid) < 0) {
- log_error("Failed to change UID to " UID_FMT ": %m", uid);
- return -errno;
- }
+ if (setresuid(uid, uid, uid) < 0)
+ return log_error_errno(errno, "Failed to change UID to " UID_FMT ": %m", uid);
}
env = strv_env_merge(3, environ, user_env, arg_environment);
log_info("Running as unit %s.", name);
execvpe(argv[0], argv, env);
- log_error("Failed to execute: %m");
+ log_error_errno(errno, "Failed to execute: %m");
return -errno;
}