daemon.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * =====================================================================================
  3. *
  4. * Filename: daemon.h
  5. *
  6. * Description: daemon class definition.
  7. *
  8. * Version: 1.0
  9. * Created: 11/01/2021
  10. * Revision: none
  11. * Compiler: gcc
  12. *
  13. * Author: chenyujie, chenyujie28@jd.com@jd.com
  14. * Company: JD.com, Inc.
  15. *
  16. * =====================================================================================
  17. */
  18. #ifndef __DAEMON_H__
  19. #define __DAEMON_H__
  20. #include <signal.h>
  21. #include <errno.h>
  22. #include <string.h>
  23. #include <unistd.h>
  24. #include <sys/time.h>
  25. #include <sys/types.h>
  26. #include <sys/resource.h>
  27. #include <sys/types.h>
  28. #include <sys/wait.h>
  29. class DaemonBase {
  30. public:
  31. static int EnableFdLimit(int maxfd);
  32. static int EnableCoreDump();
  33. static int DaemonStart(int back = 1);
  34. static int DaemonWait();
  35. private:
  36. DaemonBase() {
  37. } virtual ~ DaemonBase() {
  38. }
  39. DaemonBase(const DaemonBase &);
  40. const DaemonBase & operator=(const DaemonBase &);
  41. static void sig_handler(int signal) {
  42. _stop = 1;
  43. }
  44. public:
  45. static volatile int _stop;
  46. };
  47. #endif