Double fork to release child to be reaped by init

If a task forks, it must clean up after its dead children or the system
will have zombie tasks that will ultimately be reparented to init, but
only after the parent dies.

Cleanup can be done in a variety of ways: waitpid, ignoring SIGCHLD, or
forking twice and allowing the grandchild to be reparented to init and
calling waitpid on the child.

Change-Id: Ic48ea583b37e065da34aa4acfd74b6e1b1c2d04f
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
1 file changed
tree: 4865d26d87910e162217450f09815600268f294c
  1. org/
  2. test/
  3. xyz/
  4. .clang-format
  5. .gitignore
  6. activation.cpp
  7. activation.hpp
  8. bootstrap.sh
  9. configure.ac
  10. download_manager.cpp
  11. download_manager.hpp
  12. download_manager_main.cpp
  13. elog-errors.hpp
  14. image_manager.cpp
  15. image_manager.hpp
  16. image_manager_main.cpp
  17. image_verify.cpp
  18. image_verify.hpp
  19. item_updater.cpp
  20. item_updater.hpp
  21. item_updater_main.cpp
  22. LICENSE
  23. Makefile.am
  24. README.md
  25. serialize.cpp
  26. serialize.hpp
  27. sync_manager.cpp
  28. sync_manager.hpp
  29. sync_manager_main.cpp
  30. sync_watch.cpp
  31. sync_watch.hpp
  32. version.cpp
  33. version.hpp
  34. watch.cpp
  35. watch.hpp
README.md

phosphor-bmc-code-mgmt

Phosphor BMC Code Management provides a set of system software management applications. More information can be found at Software Architecture

To Build

To build this package, do the following steps:

    1. ./bootstrap.sh
    2. ./configure ${CONFIGURE_FLAGS}
    3. make

To clean the repository run `./bootstrap.sh clean`.