X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftimesync%2Ftimesyncd.c;h=2a73dac033c8fe1570febd1ac2fb16a3e1fdb26c;hb=c74f883c6f7d5901b3c543d47f64082ccd91a895;hp=ee3bc99ae042d97dec49060317b96381f8e36392;hpb=af4ec4309e8f82aad87a8d574785c12f8763d5f8;p=elogind.git diff --git a/src/timesync/timesyncd.c b/src/timesync/timesyncd.c index ee3bc99ae..2a73dac03 100644 --- a/src/timesync/timesyncd.c +++ b/src/timesync/timesyncd.c @@ -73,7 +73,7 @@ static int load_clock_timestamp(uid_t uid, gid_t gid) { format_timestamp(date, sizeof(date), min)); if (clock_settime(CLOCK_REALTIME, timespec_store(&ts, min)) < 0) - log_error("Failed to restore system clock: %m"); + log_error_errno(errno, "Failed to restore system clock: %m"); } return 0; @@ -101,7 +101,7 @@ int main(int argc, char *argv[]) { r = get_user_creds(&user, &uid, &gid, NULL, NULL); if (r < 0) { - log_error("Cannot resolve user name %s: %s", user, strerror(-r)); + log_error_errno(r, "Cannot resolve user name %s: %m", user); goto finish; } @@ -113,11 +113,15 @@ int main(int argc, char *argv[]) { if (r < 0) goto finish; + /* We need one process for ourselves, plus one thread for the asynchronous resolver */ + if (setrlimit(RLIMIT_NPROC, &RLIMIT_MAKE_CONST(2)) < 0) + log_warning_errno(errno, "Failed to lower RLIMIT_NPROC to 2: %m"); + assert_se(sigprocmask_many(SIG_BLOCK, SIGTERM, SIGINT, -1) == 0); r = manager_new(&m); if (r < 0) { - log_error("Failed to allocate manager: %s", strerror(-r)); + log_error_errno(r, "Failed to allocate manager: %m"); goto finish; } @@ -129,7 +133,7 @@ int main(int argc, char *argv[]) { r = manager_parse_config_file(m); if (r < 0) - log_warning("Failed to parse configuration file: %s", strerror(-r)); + log_warning_errno(r, "Failed to parse configuration file: %m"); log_debug("systemd-timesyncd running as pid %lu", (unsigned long) getpid()); sd_notify(false, @@ -144,7 +148,7 @@ int main(int argc, char *argv[]) { r = sd_event_loop(m->event); if (r < 0) { - log_error("Failed to run event loop: %s", strerror(-r)); + log_error_errno(r, "Failed to run event loop: %m"); goto finish; }