git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 14/14] daemon: only use posix features on posix systems

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Oct 10, 2010, 19:40 UTC
Message-ID
<AANLkTimn3XWDXhqrZm+VS1Ouy8tzmCAVOyMN7KjQ7dFt@mail.gmail.com>
In-Reply-To
<1286716854-5744-15-git-send-email-kusmabite@gmail.com>
On Sun, Oct 10, 2010 at 13:20, Erik Faye-Lund <kusmabite@gmail.com> wrote:
> Windows does not supply the POSIX-functions fork(), setuuid(), setgid(),
> setsid() and initgroups(). Disable support for --user, --group and
> --detach on platforms lacking _POSIX_VERSION.

FWIW I checked if Perl's fork() emulation with threads on Windows could emulate this, but no:

    perl -E '
    if (my $pid = fork()) {
      say "$$: child running as $pid"
    } else {
      sleep 1;
      say "$$: running in the background"
    }'

On Unix that would detach the process from the terminal, but on Windows with threads the original process only returns after the child has finished.

I didn't expect it to act differently, but I thought I'd note it here in case anyone had it in mind to implement --detach on Windows.

> This might be a bit controversial; does anyone know of any systems that
> implements fork(), setuuid(), setgid() and setsid() but does not define
> _POSIX_VERSION? Perhaps we should have a separate makefile-switch instead?

Even if it's defined it's more self-documenting to have our own HAVE_POSIX_GOODIES (or something like that) instead.

Previous: Erik Faye-Lund
Message 43 of 43 in “daemon-win32”
  1. 00/14 daemon-win32Erik Faye-Lund, Oct 10, 2010
  2. 01/14 mingw: add network-wrappers for daemonErik Faye-Lund, Oct 10, 2010
  3. Eric SunshineOct 10, 2010
  4. Erik Faye-LundOct 10, 2010
  5. Eric SunshineOct 10, 2010
  6. 02/14 mingw: implement syslogErik Faye-Lund, Oct 10, 2010
  7. Eric SunshineOct 10, 2010
  8. Erik Faye-LundOct 10, 2010
  9. Johannes SixtOct 10, 2010
  10. Erik Faye-LundOct 10, 2010
  11. Eric SunshineOct 10, 2010
  12. Erik Faye-LundOct 10, 2010
  13. Erik Faye-LundOct 10, 2010
  14. Eric SunshineOct 10, 2010
  15. Erik Faye-LundOct 11, 2010
  16. Erik Faye-LundOct 11, 2010
  17. 03/14 compat: add inet_pton and inet_ntop prototypesErik Faye-Lund, Oct 10, 2010
  18. 04/14 inet_ntop: fix a couple of old-style declsErik Faye-Lund, Oct 10, 2010
  19. 05/14 mingw: use real pidErik Faye-Lund, Oct 10, 2010
  20. Eric SunshineOct 10, 2010
  21. Erik Faye-LundOct 10, 2010
  22. Eric SunshineOct 10, 2010
  23. 06/14 mingw: support waitpid with pid > 0 and WNOHANGErik Faye-Lund, Oct 10, 2010
  24. 07/14 mingw: add kill emulationErik Faye-Lund, Oct 10, 2010
  25. 08/14 daemon: use run-command api for async servingErik Faye-Lund, Oct 10, 2010
  26. Eric SunshineOct 10, 2010
  27. Erik Faye-LundOct 10, 2010
  28. 09/14 daemon: use full buffered mode for stderrErik Faye-Lund, Oct 10, 2010
  29. 10/14 Improve the mingw getaddrinfo stub to handle more use casesErik Faye-Lund, Oct 10, 2010
  30. 11/14 daemon: report connection from root-processErik Faye-Lund, Oct 10, 2010
  31. Johannes SixtOct 10, 2010
  32. Erik Faye-LundOct 10, 2010
  33. Erik Faye-LundOct 10, 2010
  34. Ævar Arnfjörð BjarmasonOct 10, 2010
  35. Erik Faye-LundOct 10, 2010
  36. 12/14 mingw: import poll-emulation from gnulibErik Faye-Lund, Oct 10, 2010
  37. Ævar Arnfjörð BjarmasonOct 10, 2010
  38. Erik Faye-LundOct 10, 2010
  39. Erik Faye-LundOct 10, 2010
  40. Ævar Arnfjörð BjarmasonOct 10, 2010
  41. 13/14 mingw: use poll-emulation from gnulibErik Faye-Lund, Oct 10, 2010
  42. 14/14 daemon: only use posix features on posix systemsErik Faye-Lund, Oct 10, 2010
  43. Ævar Arnfjörð BjarmasonOct 10, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.