@cryptotaxi247 / netdata-1 / commits / e9a3df888

start netdata on install too

Costa Tsaousis (ktsaou) committed Apr 1, 2017 at 22:12 UTC e9a3df888cb516ac22af8555ee96b9652be9660d
4 files changed +205 -196
installer/functions.sh
+168 -11
@@ -399,24 +399,181 @@ install_non_systemd_init() {
399 }
400
401 install_netdata_service() {
402 - if issystemd
402 + if [ "${UID}" -eq 0 ]
403 then
404 - # systemd is running on this system
405 - if [ ! -f /etc/systemd/system/netdata.service ]
404 + if issystemd
405 then
407 - echo >&2 "Installing systemd service..."
408 - run cp system/netdata.service /etc/systemd/system/netdata.service && \
409 - run systemctl daemon-reload && \
410 - run systemctl enable netdata && \
406 + # systemd is running on this system
407 + if [ ! -f /etc/systemd/system/netdata.service ]
408 + then
409 + echo >&2 "Installing systemd service..."
410 + run cp system/netdata.service /etc/systemd/system/netdata.service && \
411 + run systemctl daemon-reload && \
412 + run systemctl enable netdata && \
413 + return 0
414 + else
415 + echo >&2 "file '/etc/systemd/system/netdata.service' already exists."
416 return 0
417 + fi
418 else
413 - echo >&2 "file '/etc/systemd/system/netdata.service' already exists."
414 - return 0
419 + install_non_systemd_init
420 + return $?
421 fi
416 - else
417 - install_non_systemd_init
422 + fi
423 +
424 + return 1
425 +}
426 +
427 +
428 +# -----------------------------------------------------------------------------
429 +# stop netdata
430 +
431 +pidisnetdata() {
432 + if [ -d /proc/self ]
433 + then
434 + [ -z "$1" -o ! -f "/proc/$1/stat" ] && return 1
435 + [ "$(cat "/proc/$1/stat" | cut -d '(' -f 2 | cut -d ')' -f 1)" = "netdata" ] && return 0
436 + return 1
437 + fi
438 + return 0
439 +}
440 +
441 +stop_netdata_on_pid() {
442 + local pid="${1}" ret=0 count=0
443 +
444 + pidisnetdata ${pid} || return 0
445 +
446 + printf >&2 "Stopping netdata on pid ${pid} ..."
447 + while [ ! -z "$pid" -a ${ret} -eq 0 ]
448 + do
449 + if [ ${count} -gt 45 ]
450 + then
451 + echo >&2 "Cannot stop the running netdata on pid ${pid}."
452 + return 1
453 + fi
454 +
455 + count=$(( count + 1 ))
456 +
457 + run kill ${pid} 2>/dev/null
458 + ret=$?
459 +
460 + test ${ret} -eq 0 && printf >&2 "." && sleep 2
461 + done
462 +
463 + echo >&2
464 + if [ ${ret} -eq 0 ]
465 + then
466 + echo >&2 "SORRY! CANNOT STOP netdata ON PID ${pid} !"
467 + return 1
468 + fi
469 +
470 + echo >&2 "netdata on pid ${pid} stopped."
471 + return 0
472 +}
473 +
474 +stop_all_netdata() {
475 + local p myns ns
476 +
477 + myns="$(readlink /proc/self/ns/pid 2>/dev/null)"
478 +
479 + # echo >&2 "Stopping a (possibly) running netdata (namespace '${myns}')..."
480 +
481 + for p in \
482 + $(cat /var/run/netdata.pid 2>/dev/null) \
483 + $(cat /var/run/netdata/netdata.pid 2>/dev/null) \
484 + $(pidof netdata 2>/dev/null)
485 + do
486 + ns="$(readlink /proc/${p}/ns/pid 2>/dev/null)"
487 +
488 + if [ -z "${myns}" -o -z "${ns}" -o "${myns}" = "${ns}" ]
489 + then
490 + stop_netdata_on_pid ${p}
491 + fi
492 + done
493 +}
494 +
495 +# -----------------------------------------------------------------------------
496 +# restart netdata
497 +
498 +restart_netdata() {
499 + local netdata="${1}"
500 + shift
501 +
502 + local started=0
503 +
504 + progress "Start netdata"
505 +
506 + if [ "${UID}" -eq 0 ]
507 + then
508 + service netdata stop
509 + stop_all_netdata
510 + service netdata restart && started=1
511 +
512 + if [ ${started} -eq 0 ]
513 + then
514 + service netdata start && started=1
515 + fi
516 + fi
517 +
518 + if [ ${started} -eq 0 ]
519 + then
520 + # still not started...
521 +
522 + stop_all_netdata
523 + run "${netdata}" "${@}"
524 return $?
525 fi
526
527 + return 0
528 +}
529 +
530 +# -----------------------------------------------------------------------------
531 +# install netdata logrotate
532 +
533 +install_netdata_logrotate() {
534 + if [ ${UID} -eq 0 ]
535 + then
536 + if [ -d /etc/logrotate.d ]
537 + then
538 + if [ ! -f /etc/logrotate.d/netdata ]
539 + then
540 + run cp system/netdata.logrotate /etc/logrotate.d/netdata
541 + fi
542 +
543 + if [ -f /etc/logrotate.d/netdata ]
544 + then
545 + run chmod 644 /etc/logrotate.d/netdata
546 + fi
547 +
548 + return 0
549 + fi
550 + fi
551 +
552 + return 1
553 +}
554 +
555 +# -----------------------------------------------------------------------------
556 +# add netdata user and group
557 +
558 +NETDATA_ADDED_TO_DOCKER=0
559 +NETDATA_ADDED_TO_NGINX=0
560 +NETDATA_ADDED_TO_VARNISH=0
561 +NETDATA_ADDED_TO_HAPROXY=0
562 +NETDATA_ADDED_TO_ADM=0
563 +NETDATA_ADDED_TO_NSD=0
564 +add_netdata_user_and_group() {
565 + if [ ${UID} -eq 0 ]
566 + then
567 + portable_add_group netdata || return 1
568 + portable_add_user netdata || return 1
569 + portable_add_user_to_group docker netdata && NETDATA_ADDED_TO_DOCKER=1
570 + portable_add_user_to_group nginx netdata && NETDATA_ADDED_TO_NGINX=1
571 + portable_add_user_to_group varnish netdata && NETDATA_ADDED_TO_VARNISH=1
572 + portable_add_user_to_group haproxy netdata && NETDATA_ADDED_TO_HAPROXY=1
573 + portable_add_user_to_group adm netdata && NETDATA_ADDED_TO_ADM=1
574 + portable_add_user_to_group nsd netdata && NETDATA_ADDED_TO_NSD=1
575 + return 0
576 + fi
577 +
578 return 1
579 }
makeself/install-or-update.sh
+19 -49
@@ -2,6 +2,13 @@
2
3 . $(dirname "${0}")/functions.sh
4
5 +export LC_ALL=C
6 +umask 002
7 +
8 +# Be nice on production environments
9 +renice 19 $$ >/dev/null 2>/dev/null
10 +
11 +
12 # -----------------------------------------------------------------------------
13 progress "Checking new configuration files"
14
@@ -53,63 +60,19 @@ run rm -rf etc/netdata.new
60 # -----------------------------------------------------------------------------
61 progress "Add user netdata to required user groups"
62
56 -NETDATA_USER=root
57 -NETDATA_GROUP=root
58 -NETDATA_ADDED_TO_DOCKER=0
59 -NETDATA_ADDED_TO_NGINX=0
60 -NETDATA_ADDED_TO_VARNISH=0
61 -NETDATA_ADDED_TO_HAPROXY=0
62 -NETDATA_ADDED_TO_ADM=0
63 -NETDATA_ADDED_TO_NSD=0
64 -if [ ${UID} -eq 0 ]
65 - then
66 - portable_add_group netdata && NETDATA_USER=netdata
67 - portable_add_user netdata && NETDATA_GROUP=netdata
68 - portable_add_user_to_group docker netdata && NETDATA_ADDED_TO_DOCKER=1
69 - portable_add_user_to_group nginx netdata && NETDATA_ADDED_TO_NGINX=1
70 - portable_add_user_to_group varnish netdata && NETDATA_ADDED_TO_VARNISH=1
71 - portable_add_user_to_group haproxy netdata && NETDATA_ADDED_TO_HAPROXY=1
72 - portable_add_user_to_group adm netdata && NETDATA_ADDED_TO_ADM=1
73 - portable_add_user_to_group nsd netdata && NETDATA_ADDED_TO_NSD=1
74 - run_ok
75 -else
76 - run_failed "The installer does not run as root."
77 -fi
63 +add_netdata_user_and_group || run_failed "The installer does not run as root."
64
65
66 # -----------------------------------------------------------------------------
67 progress "Install logrotate configuration for netdata"
68
83 -if [ ${UID} -eq 0 ]
84 - then
85 - if [ -d /etc/logrotate.d ]
86 - then
87 - if [ ! -f /etc/logrotate.d/netdata ]
88 - then
89 - run cp system/netdata.logrotate /etc/logrotate.d/netdata
90 - fi
91 -
92 - if [ -f /etc/logrotate.d/netdata ]
93 - then
94 - run chmod 644 /etc/logrotate.d/netdata
95 - fi
96 - else
97 - run_failed "logrotate dir /etc/logrotate.d is not available."
98 - fi
99 -else
100 - run_failed "The installer does not run as root."
101 -fi
69 +install_netdata_logrotate || run_failed "Cannot install logrotate file for netdata."
70
71
72 # -----------------------------------------------------------------------------
73 progress "Install netdata at system init"
74
107 -if [ "${UID}" -eq 0 ]
108 - then
109 - install_netdata_service
110 -else
111 - run_failed "The installer does not run as root."
112 -fi
75 +install_netdata_service || run_failed "Cannot install netdata init service."
76
77
78 # -----------------------------------------------------------------------------
@@ -152,7 +115,6 @@ dir_should_be_link . var/log/netdata netdata-logs
115 progress "fix permissions"
116
117 run chmod g+rx,o+rx /opt
155 -run chmod g+rx,o+rx /opt/netdata
118 run chown -R ${NETDATA_USER}:${NETDATA_GROUP} /opt/netdata
119
120
@@ -172,4 +134,12 @@ done
134
135
136 # -----------------------------------------------------------------------------
175 -netdata_banner "is installed now!"
137 +progress "starting netdata"
138 +
139 +restart_netdata
140 +if [ $? -eq 0 ]
141 + then
142 + netdata_banner "is installed and running now!"
143 +else
144 + netdata_banner "is installed now!"
145 +fi
makeself/jobs/99-makeself.install.sh
+4 -4
@@ -25,13 +25,15 @@ cp \
25 # -----------------------------------------------------------------------------
26 # create a wrapper to start our netdata with a modified path
27
28 +mkdir -p "${NETDATA_INSTALL_PATH}/bin/srv"
29 +
30 mv "${NETDATA_INSTALL_PATH}/bin/netdata" \
29 - "${NETDATA_INSTALL_PATH}/bin/netdata.bin" || exit 1
31 + "${NETDATA_INSTALL_PATH}/bin/srv/netdata" || exit 1
32
33 cat >"${NETDATA_INSTALL_PATH}/bin/netdata" <<EOF
34 #!${NETDATA_INSTALL_PATH}/bin/bash
35 export PATH="${NETDATA_INSTALL_PATH}/bin:\${PATH}"
34 -exec "${NETDATA_INSTALL_PATH}/bin/netdata.bin" "\${@}"
36 +exec "${NETDATA_INSTALL_PATH}/bin/srv/netdata" "\${@}"
37 EOF
38 chmod 755 "${NETDATA_INSTALL_PATH}/bin/netdata"
39
@@ -69,8 +71,6 @@ rm "${NETDATA_INSTALL_PATH}/sbin" \
71 --notemp \
72 --needroot \
73 --target "${NETDATA_INSTALL_PATH}" \
72 - --tar-extra "--overwrite" \
73 - --keep-umask \
74 --header "${NETDATA_MAKESELF_PATH}/makeself-header.sh" \
75 --lsm "${NETDATA_MAKESELF_PATH}/makeself.lsm" \
76 --license "${NETDATA_MAKESELF_PATH}/makeself-license.txt" \
netdata-installer.sh
+14 -132
@@ -43,7 +43,7 @@ then
43 export ACLOCAL_PATH
44 fi
45
46 -LC_ALL=C
46 +export LC_ALL=C
47 umask 002
48
49 # Be nice on production environments
@@ -612,42 +612,13 @@ run find ./system/ -type f -a \! -name \*.in -a \! -name Makefile\* -a \! -name
612 # -----------------------------------------------------------------------------
613 progress "Add user netdata to required user groups"
614
615 -NETDATA_ADDED_TO_DOCKER=0
616 -NETDATA_ADDED_TO_NGINX=0
617 -NETDATA_ADDED_TO_VARNISH=0
618 -NETDATA_ADDED_TO_HAPROXY=0
619 -NETDATA_ADDED_TO_ADM=0
620 -NETDATA_ADDED_TO_NSD=0
621 -if [ ${UID} -eq 0 ]
622 - then
623 - portable_add_group netdata
624 - portable_add_user netdata
625 - portable_add_user_to_group docker netdata && NETDATA_ADDED_TO_DOCKER=1
626 - portable_add_user_to_group nginx netdata && NETDATA_ADDED_TO_NGINX=1
627 - portable_add_user_to_group varnish netdata && NETDATA_ADDED_TO_VARNISH=1
628 - portable_add_user_to_group haproxy netdata && NETDATA_ADDED_TO_HAPROXY=1
629 - portable_add_user_to_group adm netdata && NETDATA_ADDED_TO_ADM=1
630 - portable_add_user_to_group nsd netdata && NETDATA_ADDED_TO_NSD=1
631 - run_ok
632 -else
633 - run_failed "The installer does not run as root."
634 -fi
615 +add_netdata_user_and_group || run_failed "The installer does not run as root."
616 +
617
618 # -----------------------------------------------------------------------------
619 progress "Install logrotate configuration for netdata"
620
639 -if [ ${UID} -eq 0 ]
640 - then
641 - if [ -d /etc/logrotate.d -a ! -f /etc/logrotate.d/netdata ]
642 - then
643 - run cp system/netdata.logrotate /etc/logrotate.d/netdata
644 - fi
645 -
646 - if [ -f /etc/logrotate.d/netdata ]
647 - then
648 - run chmod 644 /etc/logrotate.d/netdata
649 - fi
650 -fi
621 +install_netdata_logrotate
622
623
624 # -----------------------------------------------------------------------------
@@ -824,81 +795,13 @@ fi
795 # -----------------------------------------------------------------------------
796 progress "Install netdata at system init"
797
827 -if [ "${UID}" -eq 0 ]
828 - then
829 - install_netdata_service
830 -fi
798 +install_netdata_service || run_failed "Cannot install netdata init service."
799
800
801 # -----------------------------------------------------------------------------
802 # check if we can re-start netdata
803
804 started=0
837 -
838 -isnetdata() {
839 - if [ -d /proc/self ]
840 - then
841 - [ -z "$1" -o ! -f "/proc/$1/stat" ] && return 1
842 - [ "$(cat "/proc/$1/stat" | cut -d '(' -f 2 | cut -d ')' -f 1)" = "netdata" ] && return 0
843 - return 1
844 - fi
845 - return 0
846 -}
847 -
848 -stop_netdata_on_pid() {
849 - local pid="${1}" ret=0 count=0
850 -
851 - isnetdata ${pid} || return 0
852 -
853 - printf >&2 "Stopping netdata on pid ${pid} ..."
854 - while [ ! -z "$pid" -a ${ret} -eq 0 ]
855 - do
856 - if [ ${count} -gt 45 ]
857 - then
858 - echo >&2 "Cannot stop the running netdata on pid ${pid}."
859 - return 1
860 - fi
861 -
862 - count=$(( count + 1 ))
863 -
864 - run kill ${pid} 2>/dev/null
865 - ret=$?
866 -
867 - test ${ret} -eq 0 && printf >&2 "." && sleep 2
868 - done
869 -
870 - echo >&2
871 - if [ ${ret} -eq 0 ]
872 - then
873 - echo >&2 "SORRY! CANNOT STOP netdata ON PID ${pid} !"
874 - return 1
875 - fi
876 -
877 - echo >&2 "netdata on pid ${pid} stopped."
878 - return 0
879 -}
880 -
881 -stop_all_netdata() {
882 - local p myns ns
883 -
884 - myns="$(readlink /proc/self/ns/pid 2>/dev/null)"
885 -
886 - # echo >&2 "Stopping a (possibly) running netdata (namespace '${myns}')..."
887 -
888 - for p in $(cat "${NETDATA_RUN_DIR}/netdata.pid" 2>/dev/null) \
889 - $(cat /var/run/netdata.pid 2>/dev/null) \
890 - $(cat /var/run/netdata/netdata.pid 2>/dev/null) \
891 - $(pidof netdata 2>/dev/null)
892 - do
893 - ns="$(readlink /proc/${p}/ns/pid 2>/dev/null)"
894 -
895 - if [ -z "${myns}" -o -z "${ns}" -o "${myns}" = "${ns}" ]
896 - then
897 - stop_netdata_on_pid ${p}
898 - fi
899 - done
900 -}
901 -
805 if [ ${DONOTSTART} -eq 1 ]
806 then
807 if [ ! -s "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ]
@@ -913,40 +816,19 @@ if [ ${DONOTSTART} -eq 1 ]
816 fi
817
818 else
916 -
917 - progress "Start netdata"
918 -
919 - if [ "${UID}" -eq 0 ]
920 - then
921 - service netdata stop
922 - stop_all_netdata
923 - service netdata restart && started=1
924 - if [ ${started} -eq 0 ]
819 + restart_netdata ${NETDATA_PREFIX}/usr/sbin/netdata "${@}"
820 + if [ $? -ne 0 ]
821 then
926 - service netdata start && started=1
927 - fi
928 - fi
929 -
930 - if [ ${started} -eq 0 ]
931 - then
932 - # still not started...
933 -
934 - stop_all_netdata
935 -
936 - echo >&2 "Starting netdata..."
937 - run ${NETDATA_PREFIX}/usr/sbin/netdata -P ${NETDATA_RUN_DIR}/netdata.pid "${@}"
938 - if [ $? -ne 0 ]
939 - then
940 - echo >&2
941 - echo >&2 "SORRY! FAILED TO START NETDATA!"
942 - exit 1
943 - else
944 - echo >&2 "OK. NetData Started!"
945 - fi
946 -
822 echo >&2
823 + echo >&2 "SORRY! FAILED TO START NETDATA!"
824 + echo >&2
825 + exit 1
826 fi
827
828 + started=1
829 + echo >&2 "OK. NetData Started!"
830 + echo >&2
831 +
832 # -----------------------------------------------------------------------------
833 # save a config file, if it is not already there
834