netdata.in 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. chown @netdata_user_POST@:@netdata_user_POST@ $PIDFILE_PATH
  42. log_daemon_msg "Starting real-time performance monitoring" "netdata"
  43. start_daemon -p $PIDFILE $DAEMON_PATH/$DAEMON $DAEMONOPTS
  44. RETVAL=$?
  45. log_end_msg $RETVAL
  46. return $RETVAL
  47. }
  48. service_stop() {
  49. log_daemon_msg "Stopping real-time performance monitoring" "netdata"
  50. killproc -p ${PIDFILE} $DAEMON_PATH/$DAEMON
  51. RETVAL=$?
  52. log_end_msg $RETVAL
  53. if [ $RETVAL -eq 0 ]; then
  54. rm -f ${PIDFILE}
  55. fi
  56. return $RETVAL
  57. }
  58. condrestart() {
  59. if ! service_status > /dev/null; then
  60. RETVAL=$1
  61. return
  62. fi
  63. service_stop
  64. service_start
  65. }
  66. service_status() {
  67. status_of_proc -p $PIDFILE $DAEMON_PATH/$DAEMON netdata
  68. }
  69. #
  70. # main()
  71. #
  72. case "${1:-''}" in
  73. 'start')
  74. service_start
  75. ;;
  76. 'stop')
  77. service_stop
  78. ;;
  79. 'restart')
  80. service_stop
  81. service_start
  82. ;;
  83. 'try-restart')
  84. condrestart 0
  85. ;;
  86. 'force-reload')
  87. condrestart 7
  88. ;;
  89. 'status')
  90. service_status && exit 0 || exit $?
  91. ;;
  92. *)
  93. echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
  94. exit 1
  95. esac