netdata.in 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #!/usr/bin/env bash
  2. # SPDX-License-Identifier: GPL-3.0-or-later
  3. #
  4. # Netdata LSB start script
  5. ### BEGIN INIT INFO
  6. # Provides: netdata
  7. # Required-Start: $local_fs $remote_fs $network $named $time
  8. # Required-Stop: $local_fs $remote_fs $network $named $time
  9. # Should-Start: $local_fs $network $named $remote_fs $time $all
  10. # Should-Stop: $local_fs $network $named $remote_fs $time $all
  11. # Default-Start: 2 3 4 5
  12. # Default-Stop: 0 1 6
  13. # Short-Description: Start and stop netdata
  14. # Description: Controls the main netdata process and all its plugins.
  15. ### END INIT INFO
  16. #
  17. set -e
  18. set -u
  19. ${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
  20. DAEMON="netdata"
  21. DAEMON_PATH=@sbindir_POST@
  22. PIDFILE_PATH=@localstatedir_POST@/run/netdata
  23. PIDFILE=$PIDFILE_PATH/$DAEMON.pid
  24. DAEMONOPTS="-P $PIDFILE"
  25. test -x $DAEMON_PATH/$DAEMON || exit 0
  26. . /lib/lsb/init-functions
  27. # Safeguard (relative paths, core dumps..)
  28. cd /
  29. umask 022
  30. service_start() {
  31. if [ ! -d $PIDFILE_PATH ]; then
  32. mkdir -p $PIDFILE_PATH
  33. fi
  34. chown @netdata_user_POST@:@netdata_user_POST@ $PIDFILE_PATH
  35. log_success_msg "Starting netdata"
  36. start_daemon -p $PIDFILE $DAEMON_PATH/$DAEMON $DAEMONOPTS
  37. RETVAL=$?
  38. case "${RETVAL}" in
  39. 0) log_success_msg "Started netdata" ;;
  40. *) log_error_msg "Failed to start netdata" ;;
  41. esac
  42. return $RETVAL
  43. }
  44. service_stop() {
  45. log_success_msg "Stopping netdata"
  46. killproc -p ${PIDFILE} $DAEMON_PATH/$DAEMON
  47. RETVAL=$?
  48. case "${RETVAL}" in
  49. 0) log_success_msg "Stopped netdata" ;;
  50. *) log_error_msg "Failed to stop netdata" ;;
  51. esac
  52. if [ $RETVAL -eq 0 ]; then
  53. rm -f ${PIDFILE}
  54. fi
  55. return $RETVAL
  56. }
  57. condrestart() {
  58. if ! service_status > /dev/null; then
  59. RETVAL=$1
  60. return
  61. fi
  62. service_stop
  63. service_start
  64. }
  65. service_status() {
  66. pidofproc -p $PIDFILE $DAEMON_PATH/$DAEMON
  67. }
  68. #
  69. # main()
  70. #
  71. case "${1:-''}" in
  72. 'start')
  73. service_start
  74. ;;
  75. 'stop')
  76. service_stop
  77. ;;
  78. 'restart')
  79. service_stop
  80. service_start
  81. ;;
  82. 'try-restart')
  83. condrestart 0
  84. ;;
  85. 'force-reload')
  86. condrestart 7
  87. ;;
  88. 'status')
  89. service_status && exit 0 || exit $?
  90. ;;
  91. *)
  92. echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
  93. exit 1
  94. esac