Manuell installierter Monit auf Debian Squeeze

1373
opc0de

Ich verwende Debian Squeeze und möchte monit installieren. Das Problem ist, dass die Version im Repository alt ist und nicht einige Optionen hat, die ich brauche.

Ich habe die Quelle heruntergeladen und mit den folgenden Befehlen kompiliert:

 $ tar zxvf monit-x.y.z.tar.gz (were x.y.z denotes version numbers) $ cd monit-x.y.z $ ./configure (use ./configure --help to view available options) $ make && make install 

Es wurde aber erfolgreich kompiliert, wenn ich schreibe

sudo service monit start 

Ich bekomme:

monit: nicht erkannter Dienst

Wie kann ich es manuell als Dienst installieren? Vielen Dank

1

2 Antworten auf die Frage

3
mhost

Zuerst müssen Sie make install mit sudo ausführen, um es installieren zu können.

sudo make install 

Dann benötigen Sie ein Skript in /etc/init.d, das den Dienst startet. Monit wird im Quellverzeichnis mit einem generischen Namen namens contrib / rc.monit geliefert. Im Folgenden finden Sie diejenige, die mit dem Debian-Wheezy-Monit-Paket geliefert wird (einige Pfade können sich von einer mit dem Quellcode kompilierten Version unterscheiden, und die Debian-Version enthält einige zusätzliche "Features", die Sie integrieren könnten).

#!/bin/sh  ### BEGIN INIT INFO # Provides: monit # Required-Start: $remote_fs # Required-Stop: $remote_fs # Should-Start: $all # Should-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: service and resource monitoring daemon # Description: monit is a utility for managing and monitoring # processes, programs, files, directories and filesystems # on a Unix system. Monit conducts automatic maintenance # and repair and can execute meaningful causal actions # in error situations. ### END INIT INFO  set -e  . /lib/lsb/init-functions  DAEMON=/usr/bin/monit CONFIG="/etc/monit/monitrc" DELAY="/etc/monit/monit_delay" NAME=monit DESC="daemon monitor" MONIT_OPTS= PID="/var/run/$NAME.pid"  # Check if DAEMON binary exist [ -f $DAEMON ] || exit 0  [ -f "/etc/default/$NAME" ] && . /etc/default/$NAME  # For backward compatibility, handle startup variable: if [ -n "$startup" ] then if [ "$1" = "start" ] then printf "\tPlease, use START variable in /etc/default/monit\n" printf "\tto enable/disable $NAME startup.\n" fi  if [ -z "$START" ] && [ "$startup" -eq 1 ] then START="yes" fi fi  # For backward compatibility, handle CHECK_INTERVALS variable: if [ -n "$CHECK_INTERVALS" ] then if [ "$1" = "start" ] then printf "\tPlease, use MONIT_OPTS variable in /etc/default/monit\n" printf "\tto specify command line options for $NAME.\n" fi  MONIT_OPTS="$MONIT_OPTS -d $CHECK_INTERVALS" fi  MONIT_OPTS="-c $CONFIG $MONIT_OPTS"  monit_not_configured () { if [ "$1" != "stop" ] then printf "\tplease configure $NAME and then edit /etc/default/$NAME\n" printf "\tand set the \"START\" variable to \"yes\" in order to allow\n" printf "\t$NAME to start\n" fi exit 0 }  monit_check_config () { # Check for emtpy config. if [ "`grep -s -v \"^#\" $CONFIG`" = "" ] then echo "empty config, please edit $CONFIG." exit 0 fi }  monit_check_perms () { # Check the permission on configfile. # The permission must not have more than -rwx------ (0700) permissions.  # Skip checking, fix perms instead. /bin/chmod go-rwx $CONFIG }  monit_delayed_monitoring () { if [ -f $DELAY ] then printf "Warning: Please, set start delay for $NAME in config file\n" printf " and delete $DELAY file.\n"  if [ ! -x $DELAY ] then printf "Warning: A delayed start file exists ($DELAY)\n" printf " but it is not executable.\n" else $DELAY & fi fi }  monit_checks () { # Check if START variable is set to "yes", if not we exit. if [ "$START" != "yes" ] then monit_not_configured $1 fi # Check for emtpy configfile monit_check_config # Check permissions of configfile monit_check_perms }  case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" monit_checks $1 if start-stop-daemon --start --quiet --oknodo \ --pidfile $PID --exec $DAEMON \ -- $MONIT_OPTS then log_end_msg 0 else log_end_msg 1 fi monit_delayed_monitoring ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" if start-stop-daemon --retry TERM/5/KILL/5 --oknodo --stop --quiet \ --pidfile $PID --exec $DAEMON then log_end_msg 0 else log_end_msg 1 fi ;; reload) log_daemon_msg "Reloading $DESC configuration" "$NAME" if start-stop-daemon --stop --signal HUP --quiet \ --oknodo --pidfile $PID \ --exec $DAEMON -- $MONIT_OPTS then log_end_msg 0 else log_end_msg 1 fi ;; restart|force-reload) $0 stop $0 start ;; syntax) $DAEMON $MONIT_OPTS -t ;; status) status_of_proc -p $PID $DAEMON $NAME ;; *) log_action_msg "Usage: /etc/init.d/$NAME " ;; esac  exit 0 

Kopieren Sie dies in eine Datei namens /etc/init.d/monit und machen Sie die Datei ausführbar.

Sie sollten auch die Datei / etc / default / monit mit folgendem Inhalt erstellen:

# /etc/default/monit  # Defaults for monit initscript. This file is sourced by # /bin/sh from /etc/init.d/monit.  # You must set this variable to yes for monit to start START=yes  # Options to pass to monit #MONIT_OPTS= 

Sie sollten es dann mit dem Befehl starten können, den Sie ausgeführt haben:

sudo service monit start 

Damit es beim Booten automatisch gestartet wird, führen Sie Folgendes aus, damit es von Debian an der richtigen Stelle in den Boot-Up-Diensten eingefügt wird.

insserv monit 
1
David

Nur ein Kommentar zu Ubuntu 12.04.4 und Monit:

Ich war verrückt und versuchte herauszufinden, warum Monit nicht so funktioniert, wie auf Ubuntu 12.04.4 angekündigt. Es stellt sich heraus, dass das Paket apt-getIhnen veraltet ist. Ich entschied mich aus der Quelle zu kompilieren.

Wenn Sie Monit bereits wie ich installiert haben, können Sie einfach den Quell-Tarball herunterladen und ./configure --prefix=/usranschließend folgen make && make install.

Das Startskript /etc/init.dscheint bereits gut zu funktionieren. So kannst du es dann einfach sudo service monit restartund du bist auf dem Weg.