Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Linux

Unten finden Sie zwei Beispiele für verschiedene Init-Systeme unter Linux. Passen Sie ggf. die Einstellungen für ihr System an.


Beispielskript für Upstart

Codeblock
languagebash
themeEmacs
languagebash
$ nano /etc/init/mmsd.conf
$ service mmsd start
Codeblock
themeEmacs
firstline1
title/etc/init/mmsd.conf
firstline1
linenumberstrue
collapsetrue
#!upstart
description "Mongo Management Studio Daemon"
author "Litixsoft 2014"


#start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel 0


respawn # restart job if died
respawn limit 5 60 # after 5 trys in 60 seconds abort


script
NODEBIN="/opt/litixsoft/baboonstack/node/0.10.26/bin/node"
APPPATH="/opt/litixsoft/mongo_management_studio/"
NODEAPP="server.js"
LOGFILE="/var/log/mmsd.log"
PIDFILE="/var/run/mmsd.pid"


exec start-stop-daemon --start --make-pidfile --pidfile $PIDFILE --chdir $APPPATH --exec $NODEBIN $NODEAPP

end script

 

Beispielskript für init.d

Codeblock
languagebash
themeEmacslanguagebash
$ nano /etc/init.d/mmsd
$ chmod +x /etc/init.d/mmsd
$ update-rc.d mmsd defaults
$ ./etc/init.d/mmsd start
Codeblock
firstline
languagebash
themeEmacs
languagefirstlinebash1
title/etc/init.d/mmsd
1linenumberstrue
collapsetrue
#!/bin/sh
#
# chkconfig: 35 99 99
# description: Mongo Management Studio Daemonize
#
. /etc/rc.d/init.d/functions
USER="nodejs"
NODEBIN="/opt/litixsoft/baboonstack/node/0.10.26/bin/node"
NODEAPP="/opt/litixsoft/mongo_management_studio/server.js"
LOGFILE="/var/log/mmsd.log"
LCKFILE="/var/lock/subsys/mmsd"
do_start()
{
        if [ ! -f "$LCKFILE" ] ; then
                echo -n $"Starting $NODEAPP: "
                runuser -l "$USER" -c "$NODEBIN $NODEAPP >> $LOGFILE &" && echo_success || echo_failure
                RETVAL=$?
                echo
                [ $RETVAL -eq 0 ] && touch $LCKFILE
        else
                echo "$NODEAPP is locked."
                RETVAL=1
        fi
}
do_stop()
{
        echo -n $"Stopping $NODEAPP: "
        pid=`ps -aefw | grep "$NODEBIN $NODEAPP" | grep -v " grep " | awk '{print $2}'`
        kill -9 $pid > /dev/null 2>&1 && echo_success || echo_failure
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f $LCKFILE
}
 
case "$1" in
        start)
                do_start
                ;;
        stop)
                do_stop
                ;;
        restart)
                do_stop
                do_start
                ;;
        *)
                echo "Usage: $0 {start|stop|restart}"
                RETVAL=1
esac
 
exit $RETVAL

 

Beispielscript für SystemD (hier: CentOS 7):

  1. Erstellen einer Servicedatei für die Applikation in /etc/systemd/system/mms.service
  2. Pfade sowie Benutzer und Gruppen anpassen
Codeblock
languagebash
title/etc/systemd/system/mms.service
[Service]
ExecStart=/path/to/nodejs/binary /path/to/mongo_management_studio/server.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=litixsoft-mms
User=[username that runs the service]
Group=[group the user is in]
WorkingDirectory=/path/to/mongo_management_studio/

[Install]
WantedBy=multi-user.target

3. Einrichten des Dienstes über "systemctl enable mms", Starten durch "systemctl start mms", Status überprüfen über "systemctl status mms", Stoppen über "systemctl stop mms".