
Wie lässt sich dies ohne systemd (chkconfig usw.) implementieren?
Ich möchte PostgreSQL, Mongod und RabbitMQ neu starten.
Antwort1
Zur automatischen Wiederherstellung von Diensten können Sie verwenden monit
. Es handelt sich um einen relativ leichten und einfach zu verwendenden Dienst.
Um es in Debian zu installieren, gehen Sie wie folgt vor:
sudo apt-get install monit
So installieren und konfigurieren Sie Monit
Zur Konfiguration bearbeiten Sie /etc/monit/monitrc
den Dienst und starten ihn neu.
So können Sie beispielsweise überwachen, ob der Daemon ausgeführt wird und ob der Dienst auf den entsprechenden Ports antwortet, und die automatische Wiederherstellung für PostgreSQL, RabbitMQ und mongoDB konfigurieren:
check process postgres with pidfile /var/postgres/postmaster.pid group database start program = "/etc/init.d/postgresql start" stop program = "/etc/init.d/postgresql stop" if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql then restart if failed host 192.168.1.1 port 5432 protocol pgsql then restart check host mongodb with address localhost start program = "/usr/bin/sudo /opt/database/mongo/bin/mongod" stop program = "/usr/bin/sudo /usr/bin/pkill -f mongod" if failed port 28017 protocol HTTP request / with timeout 10 seconds then start check process rabbitmq-server with pidfile /var/run/rabbitmq.pid group rabbitmq start program "/etc/init.d/rabbitmq-server start" stop program "/etc/init.d/rabbitmq-server stop" if failed port 5672 type tcp then restart if 3 restarts within 3 cycles then timeout
Weitere Dienste finden Sie unter:Monit-Wiki
Monit ermöglicht es Ihnen auch, E-Mails in Regeln zu senden und auf die Serverauslastung zu reagieren. Ich würde jedem raten, sich das genauer anzusehen.
Antwort2
RedHat 6 verwendetEmporkömmlingals Init-System.
Sie müssen eine ordnungsgemäße Init-Definition erstellen /etc/init
(Hinweis: NICHT /etc/init.d
).
zB (muss aber möglicherweise debuggt werden)/etc/init/myservice
start on runlevel [2345]
stop on runlevel [S016]
respawn
exec /code/to/program
Der respawn
Wert führt program
zu einem Neustart, wenn er beendet wird.