netdata-lsb.in 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #!/usr/bin/env bash
  2. #
  3. # Netdata LSB start script
  4. #
  5. # Copyright:
  6. # SPDX-License-Identifier: GPL-3.0-or-later
  7. #
  8. # Author:
  9. # Costa Tsaousis <costa@netdata.cloud>
  10. # Pavlos Emm. Katsoulakis <paul@netdata.cloud>
  11. ### BEGIN INIT INFO
  12. # Provides: netdata
  13. # Required-Start: $local_fs $remote_fs $network $named $time
  14. # Required-Stop: $local_fs $remote_fs $network $named $time
  15. # Should-Start: $local_fs $network $named $remote_fs $time $all
  16. # Should-Stop: $local_fs $network $named $remote_fs $time $all
  17. # Default-Start: 2 3 4 5
  18. # Default-Stop: 0 1 6
  19. # Short-Description: Start and stop the netdata real-time monitoring server daemon
  20. # Description: Controls the main netdata monitoring server daemon "netdata".
  21. # and all its plugins.
  22. ### END INIT INFO
  23. #
  24. set -e
  25. set -u
  26. ${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
  27. DAEMON="netdata"
  28. DAEMON_PATH=@sbindir_POST@
  29. PIDFILE_PATH=@localstatedir_POST@/run/netdata
  30. PIDFILE=$PIDFILE_PATH/$DAEMON.pid
  31. DAEMONOPTS="-P $PIDFILE"
  32. test -x $DAEMON_PATH/$DAEMON || exit 0
  33. . /lib/lsb/init-functions
  34. # Safeguard (relative paths, core dumps..)
  35. cd /
  36. umask 022
  37. service_start() {
  38. if [ ! -d $PIDFILE_PATH ]; then
  39. mkdir -p $PIDFILE_PATH
  40. fi
  41. log_daemon_msg "Starting real-time performance monitoring" "netdata"
  42. start_daemon -p $PIDFILE $DAEMON_PATH/$DAEMON $DAEMONOPTS
  43. RETVAL=$?
  44. log_end_msg $RETVAL
  45. return $RETVAL
  46. }
  47. service_stop() {
  48. log_daemon_msg "Stopping real-time performance monitoring" "netdata"
  49. killproc -p ${PIDFILE} $DAEMON_PATH/$DAEMON
  50. RETVAL=$?
  51. log_end_msg $RETVAL
  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. status_of_proc -p $PIDFILE $DAEMON_PATH/$DAEMON netdata
  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