diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index ef351749f..36c05bcf1 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -1708,13 +1708,6 @@ main (int argc, char **argv ) opt.running_detached = 1; } - if (gnupg_chdir (gnupg_daemon_rootdir ())) - { - log_error ("chdir to '%s' failed: %s\n", - gnupg_daemon_rootdir (), strerror (errno)); - exit (1); - } - { struct sigaction sa; @@ -1725,6 +1718,13 @@ main (int argc, char **argv ) } #endif /*!HAVE_W32_SYSTEM*/ + if (gnupg_chdir (gnupg_daemon_rootdir ())) + { + log_error ("chdir to '%s' failed: %s\n", + gnupg_daemon_rootdir (), strerror (errno)); + exit (1); + } + log_info ("%s %s started\n", strusage(11), strusage(13) ); handle_connections (fd, fd_extra, fd_browser, fd_ssh); assuan_sock_close (fd); diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c index 436c8080b..5f3a4cd18 100644 --- a/dirmngr/dirmngr.c +++ b/dirmngr/dirmngr.c @@ -1351,15 +1351,18 @@ main (int argc, char **argv) log_set_prefix (NULL, oldflags | GPGRT_LOG_RUN_DETACHED); opt.running_detached = 1; + } +#endif + + if (!nodetach ) + { if (gnupg_chdir (gnupg_daemon_rootdir ())) { log_error ("chdir to '%s' failed: %s\n", gnupg_daemon_rootdir (), strerror (errno)); dirmngr_exit (1); } - } -#endif thread_init (); cert_cache_init (hkp_cacert_filenames); diff --git a/scd/scdaemon.c b/scd/scdaemon.c index bf3f42a0e..60d539ddd 100644 --- a/scd/scdaemon.c +++ b/scd/scdaemon.c @@ -908,6 +908,8 @@ main (int argc, char **argv ) sigaction (SIGPIPE, &sa, NULL); } +#endif /*!HAVE_W32_SYSTEM*/ + if (gnupg_chdir (gnupg_daemon_rootdir ())) { log_error ("chdir to '%s' failed: %s\n", @@ -915,8 +917,6 @@ main (int argc, char **argv ) exit (1); } -#endif /*!HAVE_W32_SYSTEM*/ - handle_connections (fd); close (fd);